1、特殊变量
2、命令行参数
运行脚本时传递给脚本的参数称为命令行参数。命令行参数用 n表示,例如, 1 表示第一个参数,$2 表示第二个参数,依次类推。
#!/bin/bash
echo "File Name: $0"
echo "First Parameter : $1"
echo "First Parameter : $2"
echo "Quoted Values: $@"
echo "Quoted Values: $*"
echo "Total Number of Parameters : $#"
运行结果:
$./test.sh Zara Ali
File Name : ./test.sh
First Parameter : Zara
Second Parameter : Ali
Quoted Values: Zara Ali
Quoted Values: Zara Ali
Total Number of Parameters : 2
脚本文件名为./test.sh,第一个参数为Zara,第二个参数为Ali,所有参数为Zara Ali,参数个数为2
3、 ∗和 @的区别:
∗和 @ 都表示传递给函数或脚本的所有参数。
- 不被双引号(” “)包含时,都以” 1"" 2” … “$n” 的形式输出所有参数。
- 但是当它们被双引号(” “)包含时;
“ ∗"会将所有的参数作为一个整体,以" 1 2… n”的形式输出所有参数;
“ @"会将各个参数分开,以" 1” “ 2"…" n” 的形式输出所有参数。
运行脚本命令:
./test.sh a b c d
for var in $*
do
echo "$var"
done
输出:
a
b
c
d
for var in $@
do
echo "$var"
done
输出:
a
b
c
d
for var in "$*"
do
echo "$var"
done
输出:a b c d
for var in "$@"
do
echo "$var"
done
输出:
a
b
c
d
总结:
$*和$@都等价于"$1" "$2" "$3" "$n"
"$*"等价于"$1 $2 $3 $4 $n"
"$@"等价于"$1" "$2" "$3" "$n"
4、退出状态:
?可以获取上一个命令的退出状态。所谓退出状态,就是上一个命令执行后的返回结果。退出状态是一个数字,一般情况下,大部分命令执行成功会返回0,失败返回1。不过,也有一些命令返回其他值,表示不同类型的错误。 ? 也可以表示函数的返回值,后续将会讲解。