shell编程 - 命令行参数
1. 读取参数
$1 获取第1个参数
$2 获取第2个参数
${10} 获取第10个参数
./test.sh 2 3
# test.sh 脚本内容
var1=$1 # 2
var2=$2 # 3
var3=$[ $var1 * $var2 ]
echo $var3 # 6
获取超过第9个参数时要用花括号括起来,${10}, ${11}
2. 读取脚本名称
$0 获取当前文件的脚本名称包括路径
./test.sh
filePath=$0
echo $filePath # ./test.sh
使用basename命令返回不包含脚本的文件名
./test.sh
filename=$(basename $0)
echo $filename # test.sh
3. 读取参数个数
$# 读取参数的个数
./test.sh 2 3
count=$#
echo $count # 2
4. 读取参数列表的最后一个参数
${!#} 读取最后一个参数
./test.sh 2 3
echo ${!#}
5. 遍历参数列表
$@ 或者 $* 可以获取所有的参数
./test.sh 2 3 4
for val in $@
do
echo $val
done
6. 检测参数
./test.sh 2 3
if [ -n "$2" ]
then
echo "$2"
fi
7. 移动参数
shift 默认每次将参数向左移动一个位置,第2位变为第1位
./test.sh 2 3 4
while [ -n "$1" ]
do
echo "$1"
shift
done
shift 2 每次将参数向左移动2个位置