如何回显这个包含特殊字符的字符串

时间:2016-07-06 23:44:59

标签: bash shell

我需要以编程方式将此字符串写入CRON,但是当我这样做时:

echo "*/2 * * * * for i in `docker ps -a| grep -v Up | awk '{print $NF}'`; do ~/./check_service.sh $i; done >/dev/null 2>&1" >> mycron

我得到了:

neo4j; do ~/./check_service.sh neo4j; done >/dev/null 2>&1

那么如何才能逃避所有这些特殊字符并阻止脚本被执行。

1 个答案:

答案 0 :(得分:3)

使用单引号来防止bash / shell扩展/评估。您还需要转义awk脚本周围的单引号,如下所示。

$ echo '*/2 * * * * for i in `docker ps -a| grep -v Up | awk '\''{print $NF}'\''`; do ~/./check_service.sh $i; done >/dev/null 2>&1' >> mycron