我们知道 -c 的意思是 command,所以 bash -c 后面应该跟一个 command。
用法:bash -c “cmd string”
通常使用shell去运行脚本,两种方法 bash xxx.sh,另外一种就是bash -c “cmd string”
对于bash -c “cmd string”,我们看看官方的说明解释:
使用bash -c 要注意两点:
1. bash -c "cmd string" 接的是shell命令字符串,用双引号括起来
2. bash -c "/path/to/file" 写文件的绝对路径,用双引号括起来,且文件要具有可执行权限
# cat /etc/shells
参考
Bash Variables
https://www.gnu.org/software/bash/manual/html_node/Bash-Variables.html
关于 bash -c
https://www.dazhuanlan.com/2019/08/17/5d576a5758c5e
Linux中的bash -c 的使用详解
http://www.xckey.com/971.html
set命令
https://man.linuxde.net/set
Bash 脚本 set 命令教程
http://www.ruanyifeng.com/blog/2017/11/bash-set.html
What's “set — ”$progname“ ”$@“” means in shell script?
https://stackoverflow.com/questions/20088290/whats-set-progname-means-in-shell-script
Variable as command: eval vs bash -c
https://unix.stackexchange.com/questions/124590/variable-as-command-eval-vs-bash-c
eval command in Bash and its typical uses
https://stackoverflow.com/questions/11065077/eval-command-in-bash-and-its-typical-uses
Bash Using Eval
https://riptutorial.com/bash/example/31039/using-eval