我对 bash 脚本相当陌生,想知道在通过命令行运行时使脚本中的 bash 脚本函数作为参数的最简单方法是什么?
用法示例:
./myscript function1
./myscript function2
myscript 的示例内容:
echo "Example myscript"
function1() {
echo "I am function number 1"
}
function2() {
echo "I am function number 2"
}
if [ $# -eq 0 ]; then
echo "Specify a function. E.g. function1"
exit 1;
fi
该脚本仅在命令行调用时执行特定函数,否则将显示一些示例用法。它需要可供 cron 和此类进程使用,并由用户执行。
答案1
传递给 shell 脚本的所有参数都存储在$@,你可以循环它们:
#!/bin/bash
echo "Example myscript"
function1() {
echo "I am function number 1"
}
function2() {
echo "I am function number 2"
}
if [ $# -eq 0 ]; then
echo "Specify a function. E.g. function1"
exit 1;
fi
for func do
[ "$(type -t -- "$func")" = function ] && "$func"
done
[ "$(type -t -- "$func")" = function ]
确保我们只在$func
is 函数时进行函数调用。
例子:
$ ./test.sh function1
Example myscript
I am function number 1
$ ./test.sh function1 function2
Example myscript
I am function number 1
I am function number 2