Bash for循环如何读取脚本参数?

时间:2018-12-29 14:18:58

标签: bash for-loop parameter-passing

通常,脚本参数是从$1$2,...
中读取的。 有时,它与shiftwhile循环和case语句结合使用以处理多个参数。

while [[ $# > 0 ]]; do
  case "$1" in
    -v|--verbose)
      VERBOSE=1
      ;;
    -d|--debug)
      VERBOSE=1
      DEBUG=1
      ;;
    *)      # unknown option
      echo 1>&2 -e "${COLORED_ERROR} Unknown command line option '$key'.${ANSI_NOCOLOR}"
      exit 1
      ;;
  esac
  shift # parsed argument or value
done

今天,我发现了一个基于简单的for循环的代码段:

#! /bin/bash
for opt; do
  echo $opt
done

执行:

$ ./test.sh foo bar spam
foo
bar
spam

通常,人们会看到for i in ...; do
为什么/如何简化 循环访问脚本参数?

它还可以与函数中的参数一起使用吗?

1 个答案:

答案 0 :(得分:1)

来自help for

  

如果不存在in WORDS ...;,则假定为in "$@"