如何以相反的顺序遍历 shell 个参数?

How to loop over shell arguments in reverse order?

我想在我的 shell 脚本中构建一个循环,其中我 运行 以相反的顺序遍历所有参数并在命令中使用它们。如何做到这一点?

我的具体代码是:

#!/bin/sh
for MODULE in "$@"
do
rmmod $MODULE
done
for MODULE in "$@"
do
insmod $MODULE
done
dmesg -c

但我希望第二个 for 循环中的 "insmod" 改为使用从最后到第一个参数调用。

如果您的目标是普通 sh 而不是 bash 那么您将没有任何数组功能可言。您可以使用递归函数:

#!/bin/sh

resetmods() {
    rmmod ""
    [ "$#" -gt 1 ] && (shift; resetmods "$@")
    insmod ""
}

resetmods "$@"
dmesg -c