有的时候需要使用脚本输出一个shell文件,比如:
echo "#!/bin/bash \n /usr/bin/command args" > ./scripts.sh
这样执行之后就会出现下面的错误:
bash: !/bin/bash: event not found
这是因为echo下面用双引号的话无法解析!字符,可以使用单引号代替,如:
echo '#!/bin/bash \n /usr/bin/command args' > ./scripts.sh
如果脚本中使用到了环境变量或其他变量必须使用双引号的话,可以使用两条命令,第一条创建,后面的进行追加:
echo '#!/bin/bash \n /usr/bin/command args' > ./scripts.sh
echo "mkdir -p $PHP_ROOT" >> ./scripts.sh
注意,后面一条命令最后是两个大于号。
参考资料:
How to echo a bang!