我在尝试写一条cron作业时,我会得到一个" bash:crontab'crontab'的语法错误:crontab'。(这是用于EC2上的启动配置。(我在此处遵循本指南。
这是我的命令:
sudo { crontab -l -u ec2-user; echo "* * * * * touch /home/ec2-user/dummy/dummy$ENV"; } | crontab -u ec2-user -
如果我在没有sudo的情况下跑步,它告诉我我"必须有特权使用-u"。当我与sudo一起运行时,我会得到" bash:bash:语法错误接近意外的令牌"'}''
我敢肯定我的语法是sudo的错误,但我不确定在哪里。
完成想要的东西的另一种方法:
sudo bash -c "{ crontab -l -u ec2-user; echo '* * * * * touch /home/ec2-user/dummy/dummy$ENV'; } | crontab -u ec2-user -"
这样,您只需指定sudo
一次。
sudo
只能运行外部命令,而不能像brace group(或loops/functions/if-statements/etc(这样的外壳语法。在单个命令上使用它,您需要特殊特权:
{ sudo crontab -l -u ec2-user; echo "* * * * * touch /home/ec2-user/dummy/dummy$ENV"; } | sudo crontab -u ec2-user -