变量名=值
shell定义变量的规则:
1:等号两边不能有空格 2:定义特殊变量需要用单引号或者双引号结合 3:定义Linux命令需要用反单引号 ``
双引号中有$变量名,输出的是变量名对应的变量值;若想输出变量名则在$前加\转义字符
单引号中有$变量名,输出的是$变量名
脚本名称使用.sh结尾
第一行必须写 #!/bin/bash
1:输入语句用:read -p "描述" 变量名 2:Shell输出值:echo $变量名 #注意点:read可以传递多个数据 read -p "请输入用户名和密码" name password #超过的部分都填充在最后一个变量上
方式1: ./脚本名.sh(权限的问题) chmod +x 脚本名
方式2: sh 脚本名.sh
参数传递:向.sh文件中传递数据
$1:接收第一个参数~~$m个 #中间有空格的名,则用$第几个拼接:例$1$2 $n:文件名称 $@:所有参数 s $#:参数个数 $0:脚本名
-eq #比较是否相等 -ne #比较不相等 -gt #比较大于 -ge #比较大于等于 -lt #比较小于 -le #比较小于等于
(2) 比较运算符 (字符串)
-a 逻辑与 -o 逻辑或 !逻辑非
if [ 条件 ] then 语句 else 语句 fi
注意点:
1): if后面有空格 2): 条件两边有空格 3): if条件里面存在变量,需要$,而且两边需要双引号 4): fi是结束标识
多条件语句格式:
if [ 条件 ] then 语句 elif [ 条件 ] then 语句 ...... else 语句 fi
练习:输入学生的成绩,80<score<=100提示非常好,60<score<=80提示好,其他则提示回家吃饭去吧
case $变量名 in "值") 语句;; "值") 语句;; ...... esac
注意点:
1): case 第一行以in结尾 2): 值可以是字符串也可以是数字,如数字范围[0-9] 3): 结束语句;; 4): esac结束标志
练习:输入一个序号,判断该用户选择哪款产品,A:笔记本 B:手机 C:小台灯
练习:请输入对客服的满意度,【0-3】不满意,【4-6】满意,【7-9】非常满意
for 变量 in 列表 do 语句 done #注意:done是结束标志
扩充:试想列表中的元素过多的时候,需要怎么做?
seq mix step max
注意:mix 开始数据 step:间隔 max 结束数据,如果step为1,可以省略,需要用反单引号
while [ 条件 ] do 语句 done
1): while后面有空格 2): 条件两边有空格 3): while条件里面存在变量,需要$,而且变量两边需要双引号 4): done是结束标识
练习:求1-100之间的和
函数名(){代码} 调用格式 函数名 #注意点:必须先定义一个函数,然后再调用它
使用$n来接收数据
练习:输入1,100两个整数进行求和运算,并打印结果
练习:输入任意两个整数进行求和运算,并打印结果
Shell 中函数中默认存在返回值
查看函数的返回值$?
如果没有代码错误默认返回值为0
有代码错误返回1
查看返回值内容: $?