Shell系统变量
set 查看系统变量
常见的系统变量
HOME:打印用户家目录。
SHELL:显示当前shell类型。
USER:打印当前用户名。
ID:打印当前用户ID信息。
PWD:显示当前所在路径。
TERM:打印当前终端类型。
HOSTNAME:显示当前主机名。
$HOME 打印用户家目录
自定义变量
A=10 定义一个A值为10,10为字符串类型
c=“Hello word” 如果定义的变量中有空格加引号
普通变量可重新赋值
注意:
变量名由字母,数字,下划线组成,首位不能是数字。
变量名和等号之间不能有空格,变量值也是
echo $A 输出A的值
只读变量
readonly a=5
只读变量不能被重新赋值,不能被删除
删除变量
unset a(变量名)
提升到环境变量中
export a 将a提升到环境变量中
特殊变量
$n
$0 显示脚本名称
$1-$9 1-9的参数
${10} 十以上参数的写法
$
$# 显示传参个数
$* 显示所有参数(把所有参数当成一个整体)
$@ 显示所有参数(把参数当成一个个个体)
$? 返回最后一次执行操作的对错如果对返回0如果错返回非0
运算符
expr
expr 3 + 2 计算3+2
expr `expr 3+2 *3 计算
缺点:太麻烦
$[ ]
a=$[(1+2)*4] 计算,并给a赋值
条件判断
语法:[ 2 -lt 3 ] (中括号两边需要加空格)
用 $?判断对错对就是0,不对就是1
两个整数比较
-lt 小于
-le 小于等于
-eq 等于
-gt 大于
-ge 大于等于
-ne 不等于
按文件权限判断
-r
-w
-x
[ -x batch.sh ] 判断有无执行权限
按照文件类型判断
-f 是一个常规文件
-e 文件存在
-d 是一个目录
[ -f batch.sh ] 判断是不是一个文件
流程控制
if判断
if[ 条件判断式 ];then
程序
fi
或
if [ 条件判断式 ]
then
程序
elif [ 条件 判断式 ]
then
程序
fi
fi
注意:
if后要有空格
case
格式:
case $1(变量) in
“1”)
程序
;;
“2”)
程序
;;
*)
esac
for
格式1:
for((a=1;a<10;a++))
do
程序
done
格式2:
for $1(变量) in 取值列表
do
程序
done
while
while [ $a -lt 10 (条件判断语句)]
do
程序
done
read
read -t 5 -p “请输入你的姓名” a
自定义函数
格式:
function(可省略)functionname()
{
程序体
如果有return就用
[ return int; ]
如果没有最后一行的结果就是返回值
}
functionname
必须在shell中调用函数