我有一个 bash 脚本,其中包含类似于以下内容的内容:
cmd="grep 'a b'"
echo $cmd
$cmd
我遇到的问题是 $cmd 出于某种原因删除了 'a b' 周围的引号,并以 grep a b
的形式执行命令,导致错误:
% ./test.sh
grep 'a b'
grep: b': No such file or directory
我尝试了引号和转义的各种组合,但结果总是一样。
最佳答案
存储命令的最佳位置是在函数中。经验法则:变量用于数据;函数用于命令。
cmd() {
grep 'a b'
}
...
cmd
关于bash - 在 bash 中执行命令时如何保留引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27004760/