一、系统变量
$HOME
$USER
$PWD
$SHELL
二、自定义变量
定义变量(a=2),变量名由数字、字母、下划线; 1.1 环境变量名建议用大写字母,JAVA_HOME 1.2 等号两侧不能有空格 1.3 变量默认都是字符串,无法直接进行数值运算 1.4 变量的值有空格,建议用双引号 撤销变量(unset a) 声明静态变量(readonly a=2),不能被撤销
a = 1
echo $a
unset a
echo $a
readonly b = 2
echo $b
export c = 3
echo $c
d = 1 +1
echo $d
e = "sorry,you are a good man"
echo $e
三、特殊变量
$#获取变量个数 $0获取脚本名称 $1获取第一个参数 ${10}获取第十个参数,参数有两位数时,需要使用{} $*获取全部参数,当成一个整体(在for循环与下面有区别) $@获取全部参数,分开对待(在for循环与上面有区别) $?最后一次执行命令的返回状态,只有为0才代表成功。
echo "输入的参数个数为:$# "
echo "脚本名称为:$0 "
echo "第一个参数为;$1 "
echo "第十个参数为:${10} "
echo "全部参数为:$* "
echo "全部参数为:$@ "
echo "执行成功了吗?$? "
四、运算符
$(( 2 + 3 ))
$(( ( 2 + 3 ) * 4 ))
$[ ( 2 +3) *4]
expr ` expr 2 + 3 ` \ * 4
五、条件判断
if [ -e /home/haha.txt ]
then
echo "存在文件/home/haha.txt"
elif [ 23 -ne 22 ] ; then
echo "23不等于22"
elif [ 23 -ge 22 ] && [ -d /home/haha.txt ] || [ -f /home/haha.txt ]
then
echo "多条件判断正确"
fi
六、循环
s = 0
for (( i= 0 ; i<= 5 ; i++ ))
do
s = $[ $s +$i ]
done
echo $s
for i in "$@ "
do
echo "$i "
done
w1 = 0
w2 = 0
while [ $w1 -le 5 ]
do
w2 = $[ $w2 +$w1 ]
w1 = $[ $w1 +1]
done
echo $w2
echo $w1