如何编写脚本来接受任意数量的命令行参数?(UNIX, BASH)

4 unix script bash

我有一个脚本,我想接受任意数量的命令行参数。

到目前为止我有

如果 [ -O $1 ] ; 然后
  echo "你是 $1 的所有者"
别的
  echo "你不是 $1 的所有者"
菲

显然,如果我希望脚本只接受一个参数,这将起作用,但是对于任何数量的参数都有效。

前任。./脚本 f f1 f2 f3

jtb*_*des 11

做您想做的事情的一种可能方法涉及$@,它是传入的所有参数的数组。

for item in "$@"; do
  if [ -O "$item" ]; then
    echo "you are the owner of $item"
  else
    echo "you are not the owner of $item"
  fi
done
Run Code Online (Sandbox Code Playgroud)

  • 嗯,看看当你运行 `script "arg with space"` 时会发生什么。它可能与您的情况有关,也可能无关。完成后,在 `$@` 和 `$item` 周围加上双引号。 (3认同)