提问人:Shaliath 提问时间:10/19/2023 更新时间:10/19/2023 访问量:104
如何从变量执行命令并在 Bash 中捕获其输出?[复制]
How do I execute a command from a variable and capture its output in Bash? [duplicate]
问:
我想将一个变量设置为一个命令,然后执行它并在另一个变量中捕获输出。我希望同时拥有命令和输出,以便进行日志记录。
对于跑步,我认为以下方法应该有效:ls
command="ls"; out=$(command); echo $out
但是,当我运行它时,输出是空的,这意味着它从未被执行过。那么,我怎样才能执行它并捕获输出呢?ls
原因是我想在一个地方更容易更改命令,而不是在任何地方使用它,例如,如果需要更改到。ls -l
这样做是有效的,但如果我想添加标志,则需要在 2 个地方进行更改: ,这使得它容易出错并且更难使用。command="ls"; out=$(ls); echo $out
command="ls -l"; out=$(ls -l); echo $out
顺便说一句,我尝试做的比这个例子更复杂,它在多个地方使用命令
答: 暂无答案
评论
out=$($command)
$command
command
command
mycommand() { ls -l; }; out=$(mycommand); echo "$out"
mycommand
command
out=$($command)
out=$($command)
out=$(eval "$command")