パラメータを含むbashスクリプトでコマンドを実行したいが、パラメータは条件付きです。私が達成したいのはこれです。
command --myflag var="value with space"
上記の場合は条件文が必要で、スペースのため--myflag var="value with space"
に二重引用符も必要です(他の理由の1つ)。だから私はこれを試しました。
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[@]}"