سؤال
وأنا جعلت هذا باش أونيلينير التي يمكنني استخدامها لقائمة الحالات يبلوغيتش تشغيل جنبا إلى جنب مع 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