导图社区 《Linux命令行与shell脚本编程大全》-第11章-构建基本脚本
这是一篇关于构建基本脚本的思维导图,主要内容包括:退出脚本,执行数学运算,管道,重定向输入输出,命令替换,使用变量,显示消息,创建shell脚本文件,使用多个命令。
说明,元素、元素的属性、属性的值使用文字的颜色进行区分。黑色文字表示元素的名称、元素节点下的属性用红色文字表示、属性下的蓝色节点表示该属性可取的值。很精简,也很抽象,理解了就可以查的很快。
这是一篇关于docker的思维导图,主要内容包括:volume,plugin,network,container,image。
这是一篇关于Python基础的思维导图,主要内容包括:11-测试代码,10-文件和异常,9-类,8-函数,7-用户输入和while,6-字典,5-if语句,4-操作列表,3-列表简介,2-变量及数据类型,1-起步。
社区模板帮助中心,点此进入>>
论语孔子简单思维导图
《傅雷家书》思维导图
《童年》读书笔记
《茶馆》思维导图
《朝花夕拾》篇目思维导图
《昆虫记》思维导图
《安徒生童话》思维导图
《鲁滨逊漂流记》读书笔记
《这样读书就够了》读书笔记
妈妈必读:一张0-1岁孩子认知发展的精确时间表
构建基本脚本
使用多个命令
将多个命令用分号隔开后输入CLI中,同时执行
创建并允许一个包含命令的文本文件,被称为脚本
创建shell脚本文件
1.使用编辑器创建一个文本文件
可以使用vim编辑器创建
2.文件的第一行必须指定要使用的shell
#!/bin/bash
第一行的#号被用来指定shell
3.在文件的每一行中输入命令,行末加一个回车符
#开头插入注释,不被执行
4.为脚本添加文件执行权限
chmod u+x [script.sh]
5.执行
以完整路径的方式执行脚本
将脚本所在目录添加进PATH环境变量中
显示消息
echo [String]
打印字符串[String]
echo -n [String]
末尾无换行符
echo "String"
echo 'String'
使用变量
环境变量
Shell维护着一组环境变量,用来记录特定的系统信息
在脚本中可以使用 $[VAR_NAME] 的方法使用环境变量
例如:echo "User info for home:$HOME"
用户变量
shell允许用户在脚本中定义和使用变量
用户变量是个长度不超过20的字符串
用户变量也可以通过 $[var_name] 引用
忘记使用美元符会使变量名变成字符串输出
脚本中定义的用户变量,在定义时生成,在脚本结束后自动删除
命令替换
从命令的输出中提取信息
$(command)
例如:testing=$(date)
美元符与小括号
`command`
例如:testing=`date`
反引号
重定向输入输出
输出重定向
>
将命令结果输出到文件
>>
将命令结果追加到文件尾
输入重定向
<
文本文件传参给命令
command << [eof_tag]
内联输入重定向
用文本标记[eof_tag]指定输入的开始与结束
例: $ wc << EOF > test string 1 > test string 2 EOF
管道
command1 | command2 | ...
command1 和 command2 同时运行,在系统内部连接
command1产生输出的同时,输出会立即传送给command2
管道符实际上是个中间中断的字符,不过很多印刷体写作一条竖线
例如: ls -l | sort | more
执行数学运算
expr命令
Bourne shell的兼容方案
不好用
使用方括号
$[operation]
例:var4 = $[$var1*($var2+$var3)]
只能整数计算
bash计算器bc
bash 的内建计算器,可以进行浮点运算
bc的基本用法
支持的运算
数字
变量
注释
表达式
编程语句
函数
bc是一个程序,使用quit指令退出bc
bc的浮点运算是由内建变量scale控制的,默认scale=0
sacle值即计算结果保留小数的位数,默认不保留即整数输出
在脚本中使用bc
例如: $ !#/bin/bash var1 = $(echo "scale=4;3.44 / 5"|bc) echo the answer is $var1
退出脚本
exit status
shell中的每一个命令都用推出状态码告诉shell已经执行完毕
exit status表示了程序结束时的状态
查看退出状态码
echo $?
查看上一条指令的退出状态码
非0表示有错误
退出状态码暂无标准,但有一些常用的参考
0:命令成功结束
1:一般性未知错误
2:不适合的shell命令
126:命令不可执行
127:没找到命令
128:无效的退出参数
128+x:与Linux信号x相关的严重错误
130:通过Ctrl+C终止的命令
255:正常范围之外的退出状态码
exit [num]
以状态码[num]推出脚本