linux shell 脚本执行命令(每天三分钟搞定linux)(1)

shell命令行中的特殊参数

如果想知道命令行中所有参数的个数,可以使用$#

如果想知道命令行中最后一个参数,使用${!#},如果没有参数的话,那么${#!}就是程序名

$*会把参数当做一个整体

$@会把参数也当作一个整体,不过可以用for指令一个个取出来,这样就可以遍历命令行参数。

建立脚本test39.sh如下:

#/bin/bash

echo "param num is $#"

echo "the last param is ${!#}"

for item in "$*";do

echo "item -> $item"

done

for item in "$@";do

echo "item -> $item"

done

运行如下:

./test39.sh wu lin wai zhuan

结果如下:

param num is 4

the last param is zhuan

item -> wu lin wai zhuan

item -> wu

item -> lin

item -> wai

item -> zhuan

linux shell 脚本执行命令(每天三分钟搞定linux)(2)

命令行中使用shift

shfit指令会把命令行中的参数进行左移操作,把$3的值给$2,$2的值给$1,$1的值被丢弃,注意$1的值不会给$0shfit后面可以加参数,表示左移几个参数,比如shift 2表示左移2

建立如下脚本:

#/bin/bash

while [ -n "$1" ];do

echo "param is $1"

shift

done

运行如下:

./test40.sh wu lin wai zhuan

结果如下:

param is wu

param is lin

param is wai

param is zhuan

,