如何访问Shell脚本的参数

时间:2022-04-14 15:34:41

所谓的位置参数指的也就是shell脚本的命令行参数。在shell的世界里,它们同时也可以是函数的参数。各参数都由整数来命名。基于历史原因,当它超过9时,就应该用大括号把数字框起来。


echo  first  arg  is $1

echo  tenth  arg  is ${10}


此外通过特殊变量,还可以取得参数的总数,以及一次取得所有参数。

$#

    提供传递到shell脚本或函数的参数总数。当你是为了处理选项和参数而建立循环时,它会很有用。

    

$*, $@

    一次表示所有的命令行参数。这两个参数可用来把命令行参数传递给脚本或函数所执行的程序。


"$*"

    将所有命令行参数视为单个字符串。等同于"$1  $2  $3 ..."。$IFS的第一个字符用来作为分割字符,以分割不同的值来建立字符串。举例:

    printf    "The  arguments  were  %s\n"   "$*“


"$@"

    将所有命令行参数视为单独的个体,也就是单独字符串。等同于"$1"  "$2"  ....。这是将参数传递给其他程序的最佳方式,因为它会保留所有内嵌在每个参数里的任何空白。

   例:   lpr  "$@"     显示每一个文件