试图让我的脚本工作,但它不起作用。这是我的脚本
#!/bin/bash
a="* * * * * /home/server/scripts/check.sh"
b="0 06,18 * * * /home/server/scripts/checks2.sh"
sudo sed -i '28s/^/'$b'\n/' /var/spool/cron/crontabs/root
sudo sed -i '28s/^/'$a'\n/' /var/spool/cron/crontabs/root
exit
如何向其中添加变量?我刚得到sed -e incomplete 's' command
。
答案1
该命令有两个问题sed
:
- 变量
$a
和$b
没有被引用,这使得 shell 传递它们部分作为sed
几个参数,并且 - 替换的分隔符也可以在和
"/"
的值中找到。$a
$b
sed
接受其他分隔符,例如逗号和百分比。您使用了逗号,但未使用百分比。如果您将脚本修改为
#!/bin/bash
a="* * * * * /home/server/scripts/check.sh"
b="0 06,18 * * * /home/server/scripts/checks2.sh"
sudo sed -i '28s%^%'"$b"'\n%' /var/spool/cron/crontabs/root
sudo sed -i '28s%^%'"$a"'\n%' /var/spool/cron/crontabs/root
exit
甚至
#!/bin/bash
a="* * * * * /home/server/scripts/check.sh"
b="0 06,18 * * * /home/server/scripts/checks2.sh"
sudo sed -i "28s%^%$b\n%" /var/spool/cron/crontabs/root
sudo sed -i "28s%^%$a\n%" /var/spool/cron/crontabs/root
exit
这将解决这两个问题。