gpt4 book ai didi

linux - 在 Bash CGI 中的同一变量中运行两个命令

转载 作者:太空宇宙 更新时间:2023-11-04 03:45:40 25 4
gpt4 key购买 nike

在我的 Bash CGI 脚本中,我采用作为 GET 参数传递的命令并执行它。这可能是:

CMD='ls -al'
$CMD

它运行良好并产生预期的输出。但是如果我尝试传递两个命令

CMD='ls -al; echo hello'
$CMD

CMD='ls -al && echo hello'
$CMD

两个命令都没有执行。

如何从 bash CGI 中的同一行/变量运行多个命令?

最佳答案

您可以使用 bash 将变量作为 bash 代码执行:

# UNSAFE, DO NOT USE
cmd='ls -al; echo hello'
bash -c "$cmd"

或者,根据您要运行它的上下文,您可以使用 eval "$cmd" 来运行它,就好像它是您自己脚本中的一行,而不是执行一段单独的 shell 代码:

# UNSAFE, DO NOT USE
cmd='ls -al; echo hello'
eval "$cmd"

这两种方法都会对安全性和正确性产生严重影响,因此我觉得必须添加警告以防止它们被断章取义地复制。

对于专门用于运行不安全用户输入的远程 shell 或 root 工具包,您可以忽略警告。

关于linux - 在 Bash CGI 中的同一变量中运行两个命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28310720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com