我很好奇如何通过终端将参数传递给bash脚本并读取它们并根据参数处理脚本函数。
所以,如果我做了类似的事情:
./scriptname.sh install
#or
./scriptname.sh assets install
我怎么说,好的第一个参数安装了一些东西,而第二个参数根据第一个参数做了其他的事情。
答案 0 :(得分:2)
$0 is the name of the command
$1 first parameter
$2 second parameter
$3 third parameter etc. etc
$# total number of parameters
for args in $*
blah blah
答案 1 :(得分:1)
您可以使用$1
,$2
来访问特定参数,...请参阅例如What does "$1/*" mean in "for file in $1/*"
您还可以使用"$@"
循环参数。例如:https://github.com/gturri/dotfiles/blob/master/bootstrap.sh#L64
答案 2 :(得分:1)
将参数传递给脚本的一个好方法是使用bash内置函数getopts
你可以像这样使用它:
# a script that accepts -h -a <argument> -b
while getopts "ha:b" OPTION
do
case $OPTION in
h)
# if -h, print help function and exit
helpFunction
exit 0
;;
a)
# -a requires an argument (because of ":" in the definition) so:
myScriptVariable=$OPTARG
;;
b)
# do something special
doSomeThingSpecial
;;
?)
echo "ERROR: unknonw options!! ABORT!!"
helpFunction
exit -1
;;
esac
done