shell script针对参数已经有配置好变量名称

/path/to/scriptname  opt1  opt2  opt3  opt4 
       $0             $1    $2    $3    $4

这样够清楚了吧?运行的脚本档名为 $0 这个变量,第一个接的参数就是 $1 啊~ 所以,只要我们在 script 里面善用 $1 的话,就可以很简单的立即下达某些命令功能了!除了这些数字的变量之外, 我们还有一些较为特殊的变量可以在 script 内使用来呼叫这些参数喔!

  • $# :代表后接的参数『个数』,以上表为例这里显示为『 4 』;
  • $@ :代表『 "$1" "$2" "$3" "$4" 』之意,每个变量是独立的(用双引号括起来);
  • $* :代表『 "$1c$2c$3c$4" 』,其中 c 为分隔字节,默认为空白键, 所以本例中代表『 "$1 $2 $3 $4" 』之意。

那个 $@ 与 $* 基本上还是有所不同啦!不过,一般使用情况下可以直接记忆 $@ 即可! 好了,来做个例子吧~假设我要运行一个可以携带参数的 script ,运行该脚本后萤幕会显示如下的数据:

  • 程序的档名为何?
  • 共有几个参数?
  • 若参数的个数小於 2 则告知使用者参数数量太少
  • 全部的参数内容为何?
  • 第一个参数为何?
  • 第二个参数为何

脚本名称 sh04.sh 

#!/bin/bash
# Program:
#       Program shows the sripts name, parameters...
# History:
# 2015/9/6      zengdp  First release
PATH=/bin:/sbin/:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

echo "The script name is          ==> $0"
echo "Total parameter number is   ==> $#"
[ "$#" -lt 2 ] && acho "The number of parameter is less than 2. Stop here." && exit 0
echo "You whole parameter is      ==>'$@'"
echo "The 1st parameter           ==> $1"
echo "The 2nd parameter           ==> $2"

输入命令 sh sh04.sh the one haha quot 

脚本运行后输出:

The script name is          ==> sh06.sh
Total parameter number is   ==> 4
You whole parameter is      ==>'the one haha quot'
The 1st parameter           ==> the
The 2nd parameter           ==> one
原文地址:https://www.cnblogs.com/jacson/p/4786474.html