概述
重点
eval
命令行前面放eval,在执行命令之前,它将被扫描两次
1 | pipe="|" |
shell第1次扫描命令行时,它替换出pipe的值|,接着eval使它再次扫描命令行,这时shell把|作为管道符号了。
如果变量中包含任何需要shell直接在命令行中看到的字符(不是替换的结果),就可以使用eval。命令行结束符(;| &),I/o重定向符(< >)和引号就属于对shell具有特殊意义的符号,必须直接出现在命令行中。
源码
1 | ! /bin/bash |
参考链接
http://www.cnblogs.com/dwdxdy/archive/2012/07/25/2608816.html
http://blog.zengrong.net/post/1591.html
https://droidyue.com/blog/2014/07/02/send-post-request-using-curl/