当我尝试使用sed和regex修改crontab条目时,我遇到了问题。
crontab的内容:
40 09 21 02 * cd /toto/tata && ./script.sh 1>../log/script_customer1.log 2>../log/script_customer1.err #customer1 #type1 #editable
00 19 21 05 * cd /toto/tata && ./script.sh 1>../log/script_customer2.log 2>../log/script_customer2.err #customer2 #type1 #editable
我的剧本:
cust_hrt="#customer1 #type1"
crontab -l | sed -e 's/\([0-9]*\) \([0-9]*\) \([0-9]*\) \([0-9]*\) \(.*${cust_hrt} #editable\)/30 22 25 05 \5/'
但它不起作用。 如果我直接尝试:
crontab -l | sed -e 's/\([0-9]*\) \([0-9]*\) \([0-9]*\) \([0-9]*\) \(.*#customer1 #type1 #editable\)/30 22 25 05 \5/'`
然后它有效。
我不明白。 我是否错过了变量?
答案 0 :(得分:0)
单引号内的变量不是内插的。如果切换到使用sed命令的双引号,它应该可以工作。