前言
Unix shell,一种壳层与命令行界面,是UNIX操作系统下传统的用户和计算机的交互界面。第一个用户直接输入命令来执行各种各样的任务。(维基百科)
定义解释器
- 在脚本第一行定义Shell解释器(我这里使用的是zsh)
定义脚本说明
运行脚本
<file>
:脚本名
直接执行
1 2
| chmod +x <file>.sh ./<file>.sh
|
使用对应解释器执行
以debug方式运行
查看系统支持的解释器
Shell中的特殊符号
~
:家目录
!
:执行历史命令
$
:取变量的内容
+
、-
、*
、/
、%
:数学运算符
&
:后台执行
*
:通配符,匹配任意个任意字符
?
:通配符,匹配一个任意字符
;
:分隔两条命令
|
:管道符,将第一句的结果传递给第二句作为参数
\
:转义字符
''
:单引号,用于括起来字符串。与双引号不同的是,单引号不解释变量
""
:双引号,用于括起来字符串
''''
:双单引号,相当于双引号,可以解释变量的字符串
存取变量
存变量
取变量
变量自增
重定向
输入重定向
<sh>
:命令
<file>
:文件
追加重定向
输入重定向
- 把执行命令可能会遇到的参数提前追加给命令,实现自动加参数执行命令
<sh>
:一个交互式的、可能需要参数的命令
...
:顶格写参数,一个参数一行,可以直接用换行代替默认值
算数运算
expr直接运算
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| expr 10 + 3
expr 10 - 3
expr 10 \* 3
expr 10 / 3
expr 10 % 3
|
echo直接运算
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| echo $(( 10 + 3 ))
echo $(( 10 + 3 ))
echo $(( 10 - 3 ))
echo $(( 10 * 3 ))
echo $(( 10 / 3 ))
echo $(( 10 % 3 ))
echo $(( 10 ** 3 ))
|
赋值变量后打印结果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| let sum=10+3 echo $sum
let reduce=10-3 echo $reduce
let multiply=10*3 echo $multiply
let divide=10/3 echo $devide
|
通过bc进行计算
安装bc
进行计算
配置支持小数
<num>
:支持的小数点后位数
不在交互式下运算
执行成功判断
- 如果结果是0,则代表执行成功
- 如果结果是非0,则代表执行不成功
判断数据是否为整数
- 任意数字加1,如果报错就说明不是整数
- 此时可以使用
$?
来判断是否正确执行,从而判断是否是整数
定义脚本结束
<num>
:返回值是一个数字,范围为0-28
格式化输出
-n
:输出不换行
-e
:遇见转义字符进行转义
\a
:发出警告声
\b
:删除前一个字符
\c
:最后不加上换行符号
\v
、\f
:换行但光标仍旧停留在原来的位置
\n
:换行且光标移至行首
\r
:光标移至行首,但不换行
\t
:插入制表符
\
:插入反斜线
\<num>
:插入对应ASCII值的字符
-help
:查看帮助
-version
:查看版本
输入
-p <str>
:输入事的提示文字
-t<num>
:设置超时时间
-s
:不回显
-n<num>
:限定输入的字符数
输入后存到一个变量
<str>
:变量名
输出重定向丢弃结果
完成
参考文献
哔哩哔哩——Python社区
哔哩哔哩——千锋教育网络安全学院