1. 位置参数
通过位置参数 可以方便的获取某一个位置的参数、传参个数、脚本本身的名字、还可以方便的获取所有参数。
先看一个脚本:
[root@localhost ~]# cat posion.sh
#!/bin/bash
echo "This script's name is: $0"
echo "$# parameters in total"
echo "All parameters list as: $@"
echo "The first parameter is $1"
echo "The second parameter is $2"
echo "The third parameter is $3"
[root@localhost ~]# bash posion.sh para1 para2 para3
This script's name is: posion.sh
3 parameters in total
All parameters list as: para1 para2 para3
The first parameter is para1
The second parameter is para2
The third parameter is para3
即位置参数的使用逻辑是这样:
2. $?
$?:代表上一个命令执行后的返回值
看一个例子
lianggao@bogon ~ % ls
002install Public
Applications Virtual Machines.localized
lianggao@bogon ~ % echo $?
0
lianggao@bogon ~ % al
zsh: command not found: al
lianggao@bogon ~ % echo $?
127
Linux中规定正常退出的命令或脚本的返回值是0,任何非0返回值都代表命令未正常退出或未正常执行。
所以al 返回的值是127,ls返回的是0。
常见的,我们可以判断上一个命令是否执行成功来决定是否要执行下一个命令:
if [ $? -ne 0 ]; then
echo "failed"
else
echo "succeed"
fi
或
if [ $? -eq 0 ]; then
echo "succeed"
else
echo "failed"
fi