[問題] shell script 中的sed傳遞變數請益

作者: stonys (蝶戀影)   2019-03-26 14:53:58
大家好
我想利用修改crondtab的方式來達成esxi排程關機
在shell script中寫
sed -i '$a 40 9 $1 $2 * /sbin/poweroff ' file name
然後使用 sh xxx.sh 22 3
原本是期望能將月,日的參數傳進去$1,$2裡
結果看檔案最後一行還是一樣是$1,$2
Google了一下,嘗試把單引號改成雙引號
結果會出現sed:unsupported command 9
想請教一下該如何修正呢?謝謝!
作者: kenwufederer (Nash)   2019-03-26 17:24:00
你要不要先查sed的用法?
作者: goldie (阿良)   2019-03-26 17:25:00
改雙引號後 $a 前面需加個反斜線成 \$a
作者: Gold740716 (項為之強)   2019-03-26 18:31:00
原來那個 $a 是在最後一行後附加的意思
作者: stonys (蝶戀影)   2019-03-26 19:46:00
我知道$a是在最後一行附加的意思(這就是我想要的)謝謝2F,看來是類似脫逸字元的用法,我明天再試試看!
作者: yvb   2019-03-26 21:24:00
這樣也可: sed -i '$a'"40 9 $1 $2 * /sbin/poweroff" file
作者: rickieyang (Rickie Yang)   2019-03-27 01:13:00
沒條件的在最後一行附加上去,echo 不就好了...
作者: sppmg (sppmg)   2019-03-29 12:06:00
awk, sed 碰到這種我都用 sed 'aaaaa' "$var" 'aaaa'單雙引號間不用/能空格,純粹是方便閱讀

Links booklink

Contact Us: admin [ a t ] ucptt.com