سؤال

ولدي مشكلة استبدال القيادة داخل السيناريو، والخط المخالف في السيناريو يبدو مثل هذا:

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top