سد استبدال القيادة داخل السيناريو باش؟
سؤال
ولدي مشكلة استبدال القيادة داخل السيناريو، والخط المخالف في السيناريو يبدو مثل هذا:
mail -s "$(hostname) on $(date)"
يجب استبداله مع خط مثل هذا:
nail -r "sender@domain.com" -s "Subject" -S smtp=255.255.255.255
ولكن لا أستطيع الحصول على الحوار الاقتصادي الاستراتيجي للقيام بديل :) كتبت نصي صغير لهذا الغرض:
#!/bin/bash
old="mail -s \"\$(hostname) on \$(date)"
new="nail -r \"sender@domain.com\" -s \"Subject\" -S smtp=255.255.255.255"
sed -i 's|$old|$new|' script.sh
هل لديها أي نصيحة؟
المحلول
sed -i "s|$old|$new|" script.sh
لاحظ علامات اقتباس مزدوجة.
نصائح أخرى
وسد افتراضيا لا تفعل في مكان التحرير. إذا كنت تستخدم جنو سد محاولة توفير في مكان العلم -ikbak
وأفضل استخدام إد!
لا تنتمي إلى StackOverflow