shell的特殊变量,用在如脚本,函数传递参数使用,有如下特殊的,位置参数变量
特殊参数变量
$0 获取shell脚本文件名
$n 获取shell脚本的第n各参数,n在1~9之间,如$1,$2,$9,大于9则需要写,${10},参数空格隔开
$# 获取执行的shell脚本后面的参数总个数
$* 获取shell脚本所有参数,不加引号等同于$@作用,加上引号"$*"作用是接收所有参数为单个字符串,"$1 $2..."
$@ 不加引号,效果同上,加上引号,是接收所有参数为独立字符串,如"$1" "$2" "$3" ...,空格保留
例子:
#! /bin/bash
echo '特殊变量 $1 $2 $3 ...的实践'
echo '结果' $1 $2 $3
echo '##########################'
echo '特殊变量 $# 获取参数个数'
echo '结果' $#
echo '##########################'
echo '特殊变量$* 实践'
echo '结果' $*
echo '##########################'
echo '特殊变量$@ 实践'
echo '结果' $@
特殊状态变量
$? 上一次命令执行状态返回值,0正确,非0失败
$$ 当前shell脚本的进程号
$! 上一次后台进程的id
$_ 再次之前执行的命令,最后一个参数
查找方式 man bash
搜索Special Parameters
脚本返回值,学习shell函数编程之后,才能彻底理解
这个脚本执行完毕了,会返回一个数字id,称之为返回值
#! /bin/bash
# $#获取参数个数 -ne不等于的情况 && 并且
[ $# -ne 2 ] && {
echo "must be two args"
exit 119 #终止程序运行,且放回119状态码,提供给当前shell的$?变量,若是在函数里 可以return 119
用法
}
echo "没毛病,是两个参数"
获取上一次后台执行的程序,pid,
获取当前的脚本id
获取上一个命令最后一个参数