有没有办法将以下内容组合成一个漂亮的“一行”:
echo "free -m" > /tmp/dC4v2cK
bash /tmp/dC4v2cK
答案1
或者如果你确实想要一个子 shell:
/bin/bash -c "free -m"
答案2
我认为您正在寻找eval
(如foo='free -m'; eval $foo
)。请记住,执行此类操作会产生安全隐患,如果$foo
来自不受信任的来源,那么您可能会无意中做坏事。例如,如果有人设法让此行发生会怎样。 foo='rm -rf /'
$ help eval
eval: eval [arg ...]
Execute arguments as a shell command.
Combine ARGs into a single string, use the result as input to the shell,
and execute the resulting commands.
Exit Status:
Returns exit status of command or success if command is null.