【发布时间】:2017-08-24 04:42:10
【问题描述】:
我需要在通过厨师食谱创建的 cronjob 中使用引号,但即使我转义了引号,它们也不会出现在创建的 cronjob 中。
bash "Add cron" do
user root
group root
code <<-EOH
(
(crontab -l; echo "5 0 * * * /bin/find #{node['user']['dir']}/files/ -type f \\( -name \"*.csv\" -o -name \"*.csv.bad\" -o -name \"*.ctrl\" \\) -mtime +1 -print0 | xargs -0 gzip -f" ) | crontab -
)
EOH
end
只是为了澄清我想要结束的 cron 作业应该包含 -name "*.csv"
但我实际得到的是-name *.csv
【问题讨论】:
-
有什么理由不使用
crontab资源吗? -
我正在编辑其他人创建的食谱,他们就是这样做的。我确实考虑过使用它,但我认为我应该能够在这里做我想做的事情。
-
单引号回显参数并保留双引号。这根本就是一个 bash 问题。但实际上,这很脆弱,而且在已经有资源为您妥善处理的情况下几乎没有意义。
标签: ruby bash chef-infra crontab double-quotes