Shell 是给定的选项

Shell 是给定的选项

我在列表(数组,例如)中有几个参数$@,我想知道该选项是否-v在列表中。

在Python中我会简单地这样做:

verbose = "-v" in sys.argv

如何在 shell 中实现这一点而不需要太多代码?

答案1

在 shell 脚本中,您可以调用getopts循环中的函数。中有一个代码示例仪表板手册


请注意,除了极其简单的情况外,您的 Python 代码都不正确。它检测行中任何位置的参数-v,即使它是另一个选项的参数或非选项参数之后。在 Python 中解析选项的正确方法是使用argparseoptparse

答案2

就像是:

for i in "$@"
do
  [ "$i" = -v ] && verbose=1
done

相关内容