2016-07-06 137 views
1

我需要以编程方式究竟写这个字符串转换成科雷正是这个字符串,但是当我做:如何呼应包含特殊字符

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 

所以,我怎么能逃避所有这些特殊字符并阻止正在执行的脚本。

回答

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 
+0

谢谢,作品完美,当允许时会接受答案 – Casper