这是一个非常简单的文件test.sh。
#!/usr/bin/env bash
$1
Run Code Online (Sandbox Code Playgroud)
当我运行时./test.sh "pwd; mkdir a;",它返回
./test.sh: line 3: pwd;: command not found
Run Code Online (Sandbox Code Playgroud)
我尝试使用 '&' / '&&' / ';',但都不起作用。如何通过参数运行多个命令?
您试图将bash字符串 ( $1) 解释为脚本或键入的命令。有两种方法可以做到这一点:
eval内置:eval $1而不是$1.bash以评估命令:bash -c "$1"而不是$1. 注意引号。