我想在带有参数的 bash 脚本中运行命令,但参数是有条件的。我想要实现的是这个
command --myflag var="value with space"
在上面的情况下,我想要有条件--myflag var="value with space"
,并且由于空格(以及其他原因),它还必须有双引号。所以我尝试了这样的事情
if [ $somecondition ]; then
FLAG="--myflag var=\"value with space\""
fi
command $FLAG
当我在调试中运行上面的内容时,我可以看到运行的是这个
command --myflag 'var="value' with 'space"'
注意单引号。我不知道为什么会这样,但经过多次尝试后我似乎找不到解决方案,
人们将如何解决这个问题?
答案1
你将不得不使用Bash 数组扩展。就像是:
declare -a FLAG
if [ $somecondition ]; then
FLAG=(--myflag 'var="value with space"')
fi
command "${FLAG[@]}"