shell编程基础
1. read命令
read 接收键盘输入
1.1 选项
-p:提示信息
-t:等待时间,read -t 30,会等待30s让你输入
-n:最多只允许输入指定个数的字符,如果输入已经达到个数,会自动回车
-s:隐藏输入内容(就像输入密码时候一样)
基础用法:
read -p "请输入一个数字:" num1 # 用户输入的内容会保存再num1变量中
2. shell运算符
2.1 数值运算方法
2.1.1 declare 命令
声明变量,设置或显示变量的值和属性。
-f 将操作或显示限制为函数名及函数定义。
-F 只显示函数名(调试时附加行号和源文件)。
-g 在shell函数中使用时创建全局变量;其他情况下忽略。
-p 显示每个名称的属性和值。
*设置属性的选项:
-a 创建数组(如果支持)。
-A 创建关联数组(如果支持)。
-i 增加整型属性。
+i 删除整型属性。
-l 增加小写属性,变量的值将转换为小写。
+l 删除小写属性。
-n 增加引用属性(如果该选项存在)。
+n 删除引用属性(如果该选项存在)。
-r 增加只读属性。
-t 增加追踪属性。
+t 删除追踪属性。
-u 增加大写属性,变量的值将转换为大写。
+u 删除大写属性。
-x 增加导出属性。
+x 删除导出属性。
2.1.2 数组(列表)
- 数组的定义:
- 数组的调用
2.1.3 只读属性
declare -r 变量名
变成只读之后,我们完全不能操作了已经,包括修改,删除,减掉只读属性都不行
2.1.4 数值运算方法
- declare赋值法
通过declare -i,把字符串变成数字再执行运算:
- expr 运算符
expr后面必须有空格
- let 命令
- $(())格式
3.我们来写个简易的四则运算脚本吧
1 #!/bin/bash
2 read -p "请输入数字1:" num1
3 read -p "请输入数字2:" num2
4 read -n 1 -p "请输入你想要进行的运算[+|-|*|/|%]:" sign
5
6 echo -e "\n" # echo -e 可以输出特殊符号
7
8 [ $sign == "+" ] && echo $(( $num1 + $num2 )) && exit # exit是退出程序命令
9 [ $sign == "-" ] && echo $(( $num1 - $num2 )) && exit
10 [ $sign == "*" ] && echo $(( $num1 * $num2 )) && exit
11 [ $sign == "/" ] && echo $(( $num1 / $num2 )) && exit
12 [ $sign == "%" ] && echo $(( $num1 % $num2 )) && exit
13
14 echo "你输入的运算符不对,请输入正确的运算符+-*/!!!"
运行结果:
这个脚本还存在很多问题,比如没有对数字进行判断等,后续再完善
4. 变量测试与置换
目的为了检测变量是否存在,以及是否设置了空值。
内容太繁琐了,我们只看第一条: