سؤال

وأنا جعلت هذا باش أونيلينير التي يمكنني استخدامها لقائمة الحالات يبلوغيتش تشغيل جنبا إلى جنب مع paths.This على كامل يعمل بشكل جيد عندما كنت تشغيله من قذيفة.

/usr/ucb/ps auwwx | grep weblogic | tr ' ' '\n' | grep security.policy | grep domain | awk -F'=' '{print $2}' | sed 's/weblogic.policy//' | sed 's/security\///' | sort

وحاولت أن تدمج هذا في تتوقعه النصي

send "echo Weblogic Processes: ; /usr/ucb/ps auwwx | grep weblogic | tr ' ' '\n' | grep security.policy | grep domain | awk -F'=' '{print \$2}' | sed 's/weblogic.policy//' | sed 's/security\///' | sort ; echo ; echo\r"

ولكن حصلت على سد هذا الخطأ: التعبير -e رقم 1، شار 13: خيار غير معروف سيصدره '

يرجى المساعدة

هل كانت مفيدة؟

المحلول

وبدون فرز دقيق أو الاختبار، فما استقاموا لكم فاستقيموا محاولة مضيفا \ آخر بعد "الأمن \"، أو ربما حذف موجودة.

وبالإضافة إلى ذلك، يمكنك الجمع بين عنيزة اثنين الى واحد: sed -e 's/weblogic.policy//' -e 's/security\///'

نصائح أخرى

ولعل الطابع \ في

sed 's/security\///'

ويحتاج هروب إضافي في تتوقعه السياق، منها مثلا.

send "echo Weblogic Processes: ; /usr/ucb/ps auwwx | grep weblogic | tr ' ' '\n' | grep security.policy | grep domain | awk -F'=' '{print \$2}' | sed 's/weblogic.policy//' | sed 's/security\\///' | sort ; echo ; echo\r"

واستخدام تى سى ال و{} المشغل بدلا من علامات الاقتباس المزدوجة حول السلسلة التي تريد إرسالها. بناء الجملة {} في تى سى ال يعادل اقتباس مفردة في باش، ومعنى "سلسلة حرفية، لا تفسير محتوياته".

داخل {} وضع بالضبط ما تريد تى سى ال / توقع أن ترسل إلى فرعي أو جانبي، حرف حرف، أي خارج نقلا عن المطلوب.

وأعتقد أن هذا هو معقد جدا لإرسال أكثر من مضيف بعيد. بدلا من ذلك، وضع الأوامر في برنامج نصي قذيفة صغيرة وتنفيذ ذلك. بهذه الطريقة، فلن اجهت مشاكل بسبب قواعد التوسع الاقتباس، الهروب، وما إلى ذلك.

وعلاوة على ذلك، يجب استخدام ssh بدلا من expect إلى البرامج النصية تشغيل. expect هو لتشغيل الأوامر التفاعلية مثل ftp التي لا تملك قدرات البرمجة المناسبة.

ويمكنك محاولة إزالة علامات الاقتباس المفردة وتشغيل الأمر مرة أخرى.

send "....... sed s/weblogic.policy// | sed s/security\/// ..."

ولها معظم القضايا ربما نقلا. إذا كان لا يرام، ومحاولة اقتراح hlovdal

وفي الوقت نفسه، بعض الأوامر الكاسح الخاص بك يمكن أن تكون مجتمعة

/usr/ucb/ps auwwx |grep weblogic| tr ' ' '\n'|awk '/security.policy/&&/domain/{gsub("weblogic.policy|security","",$2);print $2}|sort 
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top