那个
$@
与
$*
基本上还是有所不同啦!不过,一般使用情况下可以直½记忆
$@
即可!
好了,
来做个例子吧~假设我要执行一个可以携带参数的
script
,执行该½本后屏幕会显示如下的数据:
.
程序的文件名为何?
.
共有几个参数?
.
若参数的个数小于
2
则告知使用者参数数量太少
.
全部的参数内容为何?
.
第一个参数为何?
.
第二个参数为何
[dmtsai@study bin]$
vim how_paras.sh
#!/bin/bash
# Program:
#
Program shows the script name, parameters...
# History:
# 2015/07/16
VBird
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 ] && echo "The number of parameter is less than 2. Stop
here." && exit 0
echo "Your whole parameter is ==> '$@'"
echo "The 1st parameter ==> ${1}"
echo "The 2nd parameter ==> ${2}"
执行½果如下:
[dmtsai@study bin]$
sh how_paras.sh theone haha quot
The script name is ==> how_paras.sh
<
==
檔名
Total parameter number is ==> 3
<==
果然有三
个参数
Your whole parameter is ==> 'theone haha quot'
<==
参数
的
内
容全部
The 1st parameter ==> theone
<==
第一
个参数
The 2nd parameter ==> haha
<==
第二
个参数
.
shift
:造成参数变量号码偏移
除此之外,½本后面所½的变量是否能够½行偏移
(shift)
呢?什么是偏移啊?我们直½以底下的范
例来说明好了,
用范例说明比½好½释!我们½
how_paras.sh
的内容稍作变化一下,用来显示每次
偏移后参数的变化情况:
[dmtsai@study bin]$
vim shift_paras.sh
#!/bin/bash