这是一个非常简单的文件test.sh
。
#!/usr/bin/env bash
$1
当我运行./test.sh "pwd; mkdir a;"
时,它会返回
./test.sh: line 3: pwd;: command not found
我尝试使用'&' /'&&' /';',但所有人都不能工作。 如何通过arugment运行多个命令?
答案 0 :(得分:2)
您正试图让bash
解释字符串($1
),就好像它是脚本或键入的命令一样。有两种方法可以做到这一点:
eval
内置:eval $1
代替$1
。bash
以评估命令:bash -c "$1"
而不是$1
。记住报价。