linux-带sed返回错误的cronjob
我使用php生成一个自定义脚本,然后每分钟调用一次 有点像:linux-带sed返回错误的cronjob,linux,sed,crontab,Linux,Sed,Crontab,我使用php生成一个自定义脚本,然后每分钟调用一次 有点像: grep -rl 'text1' ./ | xargs sed -i 's/text1/text'"$1"'/g' 当我以root用户身份(手动)运行它时,效果很好,但当通过crontab运行时,我会出现以下错误: sed: -e expression #1, char 44: unterminated `s' command ./b.sh: 5: ./b.sh: [[: not found 如何修复它?第一次。。。你好 这个错误
grep -rl 'text1' ./ | xargs sed -i 's/text1/text'"$1"'/g'
当我以root用户身份(手动)运行它时,效果很好,但当通过crontab运行时,我会出现以下错误:
sed: -e expression #1, char 44: unterminated `s' command
./b.sh: 5: ./b.sh: [[: not found
如何修复它?第一次。。。你好
这个错误
sed:-e表达式#1,字符44:unterminated
s'命令`
表示“s”包含特殊字符,这些字符会导致sed以不同方式解释命令
这是由于bash将变量作为传递给sed的命令的一部分插入,如果它有任何特殊字符,它将更改输出。我猜“s”与环境变量有关,因为它可以手动正常工作,但不能在crontab中工作
我不熟悉sed,但是您可能需要在$FOO变量前面加一个反斜杠\来转义它,如果这不起作用,可能需要awk
有关如何使用sed/awk的示例,请参见参考资料
参考:使用
env-i./b.sh运行脚本,以更接近地模拟crontab的环境。听起来你至少错过了一次机会shebang@thatotherguy谢谢我觉得这有问题