当前位置:  开发笔记 > 编程语言 > 正文

有条件地省略bash中的命令行选项

如何解决《有条件地省略bash中的命令行选项》经验,为你挑选了1个好方法。

我有一个长命令,在某些情况下需要修改以包括或不包括一个选项。

例如

java -jar compiler.jar --externs "$externs"
    --foo "another" --bar "more"

--externs "$externs"如果$externs要清空,我希望将其完全省略。有什么方法可以在bash中执行此操作,而无需借助字符串来构建整个命令?



1> Charles Duff..:

这是${key:+WORDS}扩展的目的:

java ... ${externs:+--externs "$externs"}

将数组用于此目的也是一种常见的习惯用法:

args=( )
if [[ $externs ]]; then
  args+=( --externs "$externs" )
fi

java ... "${args[@]}"

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有