在 Chef Bash 中转义引号
Escaping Quotes in Chef Bash
我需要在通过厨师食谱创建的 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
bash "Add cron" do
user "root"
group "root"
code <<-EOH
(
(crontab -l; echo -e '5 0 * * * /bin/find /home/root/files/ -type f \( -name \"*.csv\" -o -name \"*.csv.bad\" -o -name \"*.ctrl\" \) -mtime +1 -print0 | xargs -0 gzip -f'
)
EOH
end
这里使用单引号而不是双引号。
我需要在通过厨师食谱创建的 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
bash "Add cron" do
user "root"
group "root"
code <<-EOH
(
(crontab -l; echo -e '5 0 * * * /bin/find /home/root/files/ -type f \( -name \"*.csv\" -o -name \"*.csv.bad\" -o -name \"*.ctrl\" \) -mtime +1 -print0 | xargs -0 gzip -f'
)
EOH
end
这里使用单引号而不是双引号。