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

看板Linux作者 (蝶戀影)時間5年前 (2019/03/26 14:54), 編輯推噓4(405)
留言9則, 7人參與, 5年前最新討論串1/1
大家好 我想利用修改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 想請教一下該如何修正呢?謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.200.210.125 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1553583241.A.5B6.html

03/26 17:24, 5年前 , 1F
你要不要先查sed的用法?
03/26 17:24, 1F

03/26 17:25, 5年前 , 2F
改雙引號後 $a 前面需加個反斜線成 \$a
03/26 17:25, 2F

03/26 18:31, 5年前 , 3F
原來那個 $a 是在最後一行後附加的意思
03/26 18:31, 3F

03/26 19:46, 5年前 , 4F
我知道$a是在最後一行附加的意思(這就是我想要的)
03/26 19:46, 4F

03/26 19:47, 5年前 , 5F
謝謝2F,看來是類似脫逸字元的用法,我明天再試試看!
03/26 19:47, 5F

03/26 21:24, 5年前 , 6F
這樣也可: sed -i '$a'"40 9 $1 $2 * /sbin/poweroff" file
03/26 21:24, 6F

03/27 01:13, 5年前 , 7F
沒條件的在最後一行附加上去,echo 不就好了...
03/27 01:13, 7F

03/29 12:06, 5年前 , 8F
awk, sed 碰到這種我都用 sed 'aaaaa' "$var" 'aaaa'
03/29 12:06, 8F

03/29 12:07, 5年前 , 9F
單雙引號間不用/能空格,純粹是方便閱讀
03/29 12:07, 9F
文章代碼(AID): #1ScSo9Ms (Linux)
文章代碼(AID): #1ScSo9Ms (Linux)