如何从bash中读取参数

时间:2014-01-27 17:18:35

标签: bash

我很好奇如何通过终端将参数传递给bash脚本并读取它们并根据参数处理脚本函数。

所以,如果我做了类似的事情:

./scriptname.sh install
#or
./scriptname.sh assets install

我怎么说,好的第一个参数安装了一些东西,而第二个参数根据第一个参数做了其他的事情。

3 个答案:

答案 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