您的位置:首页 > 运维架构 > Shell

(3)shell特殊变量

2016-02-02 20:44 513 查看

1、特殊变量



2、命令行参数

运行脚本时传递给脚本的参数称为命令行参数。命令行参数用 n表示,例如,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""1" "2” … “$n” 的形式输出所有参数。

但是当它们被双引号(” “)包含时;

“∗"会将所有的参数作为一个整体,以"*" 会将所有的参数作为一个整体,以"1 2…2 … n”的形式输出所有参数;

“@"会将各个参数分开,以"@" 会将各个参数分开,以"1” “2"…"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。不过,也有一些命令返回其他值,表示不同类型的错误。? 可以获取上一个命令的退出状态。所谓退出状态,就是上一个命令执行后的返回结果。
退出状态是一个数字,一般情况下,大部分命令执行成功会返回 0,失败返回 1。
不过,也有一些命令返回其他值,表示不同类型的错误。
? 也可以表示函数的返回值,后续将会讲解。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: