位置变量
位置 | 作用说明 |
---|---|
$# | 显示有几个参数 |
$n | 显示第几个参数,n:1-n |
$* | 显示当前所有参数 |
$@ | 显示当前所有参数 |
$0 | 脚本名(如果执行了脚本还包括路径) |
$? | 获取执行上一个指令的执行状态返回值(0:成功,非0:失败) |
变量 | 区别 |
---|---|
$* | “$*“将所有的参数视为单个字符串(”$1 $2 $3”),$*与$@含义相同 |
$@ | "$@“将所有的参数视为独立字符串(”$1’ “$2” “$3”) |
[root@ds ~]# set -- Hello "33 Svan" good moring
[root@ds ~]# echo $# 四个参数
4
[root@ds ~]# echo $0 bash环境下
-bash
[root@ds ~]# echo $1 第一个参数
Hello
[root@ds ~]# echo $2 第二个参数
33 Svan
[root@ds ~]# echo $3 第三个参数
good
[root@ds ~]# echo $4 第四个参数
moring
[root@ds ~]# echo $? 执行成功显示0
0
[root@ds ~]# echo $* 显示当前所有参数
Hello 33 Svan good moring
[root@ds ~]# echo $@ 显示当前所有参数
Hello 33 Svan good moring
[root@ds ~]# echo "$*"
Hello 33 Svan good moring
[root@ds ~]# echo "$@"
Hello 33 Svan good moring
[root@ds ~]# for i in "$*";do echo $i;done 将所有参数视为一个,因此是一行
Hello 33 Svan good moring
[root@ds ~]# for i in "$@";do echo $i;done 将每一个参数视为独立的,因此四个参数分为四行
Hello
33 Svan
good
moring
内置变量
1.echo
参数选项 | 说明 |
---|---|
-n | 不换行输出内容 |
-e | 解释转义字符 |
转义字符 | 作用 |
---|---|
\n | 换行 |
\r | 回车 |
\t | 制表符(tab) |
\b | 退格 |
\v | 纵向制表符 |
[root@bogon ~]# echo "Beijing TIME:\n `date`"
Beijing TIME:\n Tue Mar 23 21:39:00 CST 2021
[root@bogon ~]# echo -n "Beijing TIME:\n `date`"
Beijing TIME:\n Tue Mar 23 21:39:30 CST 2021[root@bogon ~]#
2.exec
功能:exec命令可以在不创建新子程的前提下,去执行指定的命令,当指定的命令完毕后,该进程也终止了。
[root@bogon etc]# exec date
Tue Mar 23 21:49:27 CST 2021
3.shift
命令格式:shift 位置参数
功能:shift语句按照命令格式重新命令所有位置的参数变量,例如:$2变成$1,$3变成$2,
每使用一次shift语句,会使所有位置参数依次向左移动一个位置,使$#减1,直到为0为止。
4.exit
功能:退出shell程序,在退出后可以选择一个数位作为返回状态。