Você terá que usar a extensão do array Bash . Algo como:
declare -a FLAG
if [ $somecondition ]; then
FLAG=(--myflag 'var="value with space"')
fi
command "${FLAG[@]}"
Eu gostaria de executar um comando em um script bash com argumentos, no entanto, os argumentos são condicionais. O que eu gostaria de conseguir é isso
command --myflag var="value with space"
No caso acima, gostaria de ter --myflag var="value with space"
condicional e também ter aspas duplas por causa do espaço (entre outras razões). Então eu tentei algo assim
if [ $somecondition ]; then
FLAG="--myflag var=\"value with space\""
fi
command $FLAG
Quando eu executo o acima na depuração eu posso ver que é executado é isso
command --myflag 'var="value' with 'space"'
Observe as aspas simples. Eu não sei porque isso é, mas depois de várias tentativas de tentar isso parece não conseguir encontrar uma solução,
Como alguém poderia resolver isso?
Você terá que usar a extensão do array Bash . Algo como:
declare -a FLAG
if [ $somecondition ]; then
FLAG=(--myflag 'var="value with space"')
fi
command "${FLAG[@]}"
Tags bash linux shell shell-script