我有一个关于我的问题的最小例子,它试图安装一个看起来像这样的crontab:
FOO="foo\"bar\"bin"
0 0 1 * * ls
通过运行crontab crontab
(我将它保存在一个名为crontab
的文件中)。它失败,并出现以下错误:
% crontab crontab
"crontab":0: bad minute
crontab: errors in crontab file, can't install
是转义引号\"
导致了这个问题。
如何在crontab的环境变量中转义引号?
我不是在问如何将环境变量添加到shell脚本中。我知道怎么做如果你想知道为什么我的问题是不同的,这里是上下文:我不只是在手动编写的crontab中编写变量。这个crontab是由[whenever][1](一个Ruby gem)生成的,它有大约70个条目,它提取所有的环境变量,并将它们作为变量放在crontab中,这样所有的凭证都可以用于脚本。问题是,最近我添加了一个复杂的,其中有报价,这打破了这个系统。
如果你好奇的话,生成变量的Ruby代码是:
ENV.each do |key, value|
env key.to_sym, value.inspect
end
1条答案
按热度按时间hwamh0ep1#
据我所知,crontab变量不能有引号,它们的长度也不能超过999个字符。这个问题的答案是,这是不可能的。