我有一个长命令,在某些情况下需要修改以包括或不包括一个选项。
例如
java -jar compiler.jar --externs "$externs" --foo "another" --bar "more"
--externs "$externs"
如果$externs
要清空,我希望将其完全省略。有什么方法可以在bash中执行此操作,而无需借助字符串来构建整个命令?
这是${key:+WORDS}
扩展的目的:
java ... ${externs:+--externs "$externs"}
将数组用于此目的也是一种常见的习惯用法:
args=( ) if [[ $externs ]]; then args+=( --externs "$externs" ) fi java ... "${args[@]}"