目录
一、shell脚本的类型
二、read命令
三、数组
3.1 定义数组
3.2 赋值数组元素
3.3 取得元素个数
3.4 取得单个元素长度
3.5 取消或删除数组中的元素
四、赋值时使用引号的作用
五、位置参数
5.1 $* 和 $@的区别
六、预定义变量
七、变量的算术运算
7.1 双小括号 (()) 数值运算命令的用法
7.2 let 运算命令的用法
7.3 expr 命令的用法
7.3.1 expr配合变量计算
7.3.2 利用 expr 计算字符串的长度
八、条件测试
8.1 条件测试语句
8.2 文件测试操作符
8.3 字符串测试操作符
8.4 测试表达式 test 、[] 、[[]] 、 (()) 的区别
九、if 条件判断语句
9.1 单条件语句
9.2 多条件语句
十、case条件判断语句
十一、for循环语句
11.1 例子:计算指定数值之内的和
11.2 例子:区别$*和$@
十二、while循环语句
十三、shell函数
13.1 语法格式
常见的shell分为两大主流:
sh 和 csh
查看系统默认的shell:echo $SHELL
查看系统支持的shell: cat /etc/shells
read -p(提示语句) -n(字符个数) -t(等待时间,单位为秒) -s(隐藏输入)
例子:
read -t 30 -p “please input your name: “ NAME
echo $NAME
bash只支持一维数组,不支持多维数组
array_name = (li wang xiang zhang) # (小括号做边界、使用空格分离)
array_name[0]=“zhao”
${#array_name[@]} 或者 ${#array_name[*]}
${#array_name[1]}
unset array_name[4]
位置参数是一种在调用 Shell 程序的命令行中按照各自的位置决定的变量,是在程序名之后输入的参数。位置参数之间用空格分隔,Shell取第一个位置参数替换程序文件中的 $1,第二个替换 $2 , 依次类推。
$0 是一个特殊变量,它的内容是当前这个shell程序的文件名,所以 $0 不是一个位置参数。
$n: n为数字,$0代表命令本身,$1-$9代表第一到第9个参数,十以上的参数需要用大括号包含,如${10}
$*: 代表命令行中所有的参数,把所有的参数看成一个整体。以"$1 $2 … $n"的形式输出所有参数
$@: 代表命令行中的所有参数,把每个参数区分对待。以"$1" "$2" … "$n" 的形式输出所有参数
$#: 代表命令行中所有参数的个数。添加到shell的参数个数
Shell中常见的算术运算符

Shell 中常见的算术运算命令


let 赋值表达式

expr 表达式 # 运算符号和数字之间要有空格
expr在Shell中可配合变量进行计算,但需要用反引号将计算表达式括起来。




注:(())不能用于文件测试,文件测试一般常用的是 [ ]

注: == 和 != 两端要有空格 ,(())不能用于字符测试

if 条件判断
then命令
fi
例子:
if 条件判断
then命令
elif 条件判断
then命令
fi
例子:

case 变量 inone)命令
;;two)命令
;;*)命令
esac
例子:

效果展示:

for 条件
do 命令
done

效果展示:


效果展示:

while 条件
do命令
done
例子:

效果展示:

function name(){statements[return values]}
对各个部分的说明:
如果你嫌麻烦,函数定义时也可以不写 function 关键字
如果写了 function 关键字,也可以省略函数名后面的小括号
例子:

效果展示:
