如何使用 shift 将 $@ 移一位

如何使用 shift 将 $@ 移一位

我正在运行一个带有 3 个参数的 shell 脚本。我正在统计每一篇的字数。但我想跳过第一个参数,也许通过使用shift或其他东西。

我见过的大多数例子都shift涉及for/while循环,这超出了我正在做的事情的需要。

以下是 if 语句内的内容,无需显示。有没有一种简单/快速的方法可以让 $@ 转变为一个?

wc $@

答案1

将第一个参数保存在变量中,然后shift一次:

arg1="$1"
shift
wc "$@" >"$arg1"

答案2

for((i=2;i<=$#;i++)); do
    wc "${!i}"
done

答案3

只需带shift参数调用1并记住引用"$@"

shift 1
wc "$@"

相关内容