shell script 中的sed傳遞變數請益 - Linux

Table of Contents


大家好

我想利用修改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

想請教一下該如何修正呢?謝謝!

--

All Comments

Anthony avatarAnthony2019-03-27
你要不要先查sed的用法?
Anonymous avatarAnonymous2019-03-31
改雙引號後 $a 前面需加個反斜線成 \$a
Christine avatarChristine2019-04-01
原來那個 $a 是在最後一行後附加的意思
Emily avatarEmily2019-04-02
我知道$a是在最後一行附加的意思(這就是我想要的)
Madame avatarMadame2019-04-05
謝謝2F,看來是類似脫逸字元的用法,我明天再試試看!
Jack avatarJack2019-04-07
這樣也可: sed -i '$a'"40 9 $1 $2 * /sbin/poweroff" file
Todd Johnson avatarTodd Johnson2019-04-10
沒條件的在最後一行附加上去,echo 不就好了...
Carolina Franco avatarCarolina Franco2019-04-15
awk, sed 碰到這種我都用 sed 'aaaaa' "$var" 'aaaa'
Hedwig avatarHedwig2019-04-15
單雙引號間不用/能空格,純粹是方便閱讀