作者stonys (蝶恋影)
看板Linux
标题[问题] shell script 中的sed传递变数请益
时间Tue Mar 26 14:53:58 2019
大家好
我想利用修改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://webptt.com/cn.aspx?n=bbs/Linux/M.1553583241.A.5B6.html
1F:→ kenwufederer: 你要不要先查sed的用法? 03/26 17:24
2F:推 goldie: 改双引号後 $a 前面需加个反斜线成 \$a 03/26 17:25
3F:推 Gold740716: 原来那个 $a 是在最後一行後附加的意思 03/26 18:31
4F:→ stonys: 我知道$a是在最後一行附加的意思(这就是我想要的) 03/26 19:46
5F:→ stonys: 谢谢2F,看来是类似脱逸字元的用法,我明天再试试看! 03/26 19:47
6F:→ yvb: 这样也可: sed -i '$a'"40 9 $1 $2 * /sbin/poweroff" file 03/26 21:24
7F:推 rickieyang: 没条件的在最後一行附加上去,echo 不就好了... 03/27 01:13
8F:推 sppmg: awk, sed 碰到这种我都用 sed 'aaaaa' "$var" 'aaaa' 03/29 12:06
9F:→ sppmg: 单双引号间不用/能空格,纯粹是方便阅读 03/29 12:07