如何以相反的顺序遍历 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
我想在我的 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