【发布时间】:2012-02-19 08:58:38
【问题描述】:
代码:
`cat <(fgrep -i -v "$DAEMON_TEST" <(sudo -u asm crontab -l)) <(echo "$CRON") | sudo -u asm crontab -`
错误:
command substitution: line 46: syntax error near unexpected token `('
/etc/init.d/asm: command substitution: line 46: `cat <(fgrep -i -v "$DAEMON_TEST" <(sudo -u asm crontab -l)) <(echo "$CRON") | sudo -u asm crontab -'
通过将变量替换为相关字符串,直接运行到 shell 中时,该命令运行良好
这里是变量:
DAEMON_TEST=asm_test.php
CRON="*/15 * * * * /opt/asm/daemons/test.php"
【问题讨论】:
-
我不是 100% 确定该命令的作用,但我 100% 确定它不需要这么多命令和进程替换和管道
-
您将 DAEMON_CONTROLLER 作为变量,并且您在命令 sub 中使用 DAEMON_TEST?
-
只是一个建议,您可以将
<(echo "$CRON")替换为<<< "$CRON -
它检查是否发现 DAEMON_TEST 作为 cron 作业,如果是,则将该行替换为 CRON。如果没有,则附加它。
-
@Jaypal:我粘贴的变量不正确,有一个变量叫DAEMON_TEST.php