$#
传递到脚本的参数个数
$*
以一个单字符串显示所有向脚本传递的参数
$$
脚本运行的当前进程ID号
$!
后台运行的最后一个进程的ID号
$@
与$*相同辅助论坛,但是使用时加引号,并在引号中返回每个参数。
$-
显示Shell使用的当前选项,与set命令功能相同。
显示最后命令的退出状态。0表示没有错误shell脚本基础语法,其他任何值表明有错误。
5 Shell数组 5.1 定义数组
方式一:
array_1=(1 2 3 4 5)
方式二:
array_2[0]=21
array_2[1]=22
array_2[2]=23
array_2[3]=24
array_2[4]=25
注:shell只有一维数组
5.2 使用数组
(1)使用数组
数组名称[index]:获取第index个元素,从0开始
数组名称[*]:获取全部元素
(2)案例
[root@iZ1608aqb7ntn9Z shellTest]# touch array.sh
[root@iZ1608aqb7ntn9Z shellTest]# vim array.sh
#########写入内容#########
#!/bin/bash
array_1=(1 2 3 4 5)
array_2[0]=21
array_2[1]=22
array_2[2]=23
array_2[3]=24
array_2[4]=25
echo array_1 first element is ${array_1[0]} and all elements are [${array_1[*]}]
echo array_2 first element is ${array_2[0]} and all elements are [${array_2[*]}]
#########写入结束#########
[root@iZ1608aqb7ntn9Z shellTest]# ./array.sh
array_1 first element is 1 and all elements are [1 2 3 4 5]
array_2 first element is 21 and all elements are [21 22 23 24 25]
5.3 数组长度
echo array_1 length is ${#array_1[*]}
echo array_1 length is ${#array_1[@]}
6 流程控制 6.1 判断语句 6.1.1 if语句
(1)基本语法
if [ 表达式 ]
then
语句1
elif [ 表达式 ]
语句2
else
语句3
fi
(2)案例
[root@iZ1608aqb7ntn9Z shellTest]# vim if.sh
#####################写入内容##########################
#!/bin/bash
a=$1
b=$2
if [ $a == $b ]
then
echo "a 等于 b"
elif [ $a -gt $b ]
then
echo "a 大于 b"
elif [ $a -lt $b ]
then
echo "a 小于 b"
else
echo "没有符合的条件"
fi
#####################写入内容结束##########################
[root@iZ1608aqb7ntn9Z shellTest]# ./if.sh 2 4
a 小于 b
[root@iZ1608aqb7ntn9Z shellTest]# ./if.sh 8 4
a 大于 b
[root@iZ1608aqb7ntn9Z shellTest]# ./if.sh 4 4
a 等于 b