没有合适的资源?快使用搜索试试~ 我知道了~
linuxshell脚本学习笔记文.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 182 浏览量
2021-11-04
15:45:26
上传
评论
收藏 48KB PDF 举报
温馨提示
试读
13页
linuxshell脚本学习笔记文.pdf
资源推荐
资源详情
资源评论
1
1.[dyl@localhost ~]$:是 命令提示符 ,可以用命令 PS1="提示符 "修改
2.命令行中用分号隔开的多条命令也是一个 shell 脚本 ,常见的是脚本文本
3.echo $variable 输出变量的值,要显示 $,需要用转义字符 \$表示
4.变量名相当于指针, $变量名,才是他的值
5.反引号 (与 ~同键的符号) :可以将一个命令的输出结果赋值给变量, eg:time=`date`
6.重定向 :
输出: command > filename :将命令的结果重定向到文件中
输入: command < filename :将文件的内容重定向到命令
>、 <是新建或重写,用 >> 、<<是追加
7.管道 :command1 | command2 将 command1 的结果传给 command2,中间没有文
件或缓冲数据
8.环境变量 :
用于储存关于 shell 会话和工作环境的信息,分全局变量和局部变量,全局变量在
shell 会话和改 shell 产生的任何子进程中都可见;局部变量值在创建它们的 shell
中可见,查看全局变量 env 或 printfenv ,查看所有变量命令 set
设置环境变量:
设置 PSTH 环境变量: PATH=$PATH:目录 (在原来基础上添加一个路径 )
9.数学计算:
expr 命令: ARG1 操作符 ARG2 ,有时候操作符需要用转义字符
expr 是 bourne shell 的命令,他想将数学等式的结果赋值给变量时就需要使用反引
号,比较麻烦, bashshell 提供更简单的方式, $[operation] 如 fish=$[1+5]
bash shell 只能整数运算, bash 计算器( bc)可以解决浮点数运算:
命令行中 $bc 访问, quit 退出, -q 可以禁止欢迎语
scale 设置小数点位数,默认是 0,所以需要设置, scale=4
print 打印变量
脚本中使用 bc:
基本格式: variable='echo "options; expression" | bc'
如: fish='echo "scale=4;3.55 /5" | bc',echo 后一定要由空格,其他的可有可无
10.退出脚本:
Linux 提供特殊变量 $?来保存最后一条命令执行结束的退出状态, shell 脚本以这个
状态为退出状态
一般命令成功退出状态为 0,错误会是 1~127 的整数,可以在脚本结束时用 exit 指
定一个退出状态: exit 5,这个数超过 255 后会是除 256 后的余数
11.结构化命令:
if-then 语句
if command1 或 if commands1;then
then commands2
command2 fi
fi
当 command1 的退出状态为 0 时,执行 command2
if command1
2
then
command2
else
command3
fi
command1 返回非零退出状态,会执行 else 后的 command3
嵌套 if
if command1
then
command2
elif command
ehen
command
elif command
ehen
command
fi
if-then 语句只能通过 command 的退出状态选择执行,只能评估一条命令的退出状
态而不能评估条件, test 可以检测 if-then 中不同条件, 如果条件评估值为 true,test 以 0
退出状态
test 能评估 3 类条件: 数值比较 只能是整数
字符串比较 大于小于符号须转义,排序与 sort 不同
文件比较
bashshell 只能处理整数数字, bc 计算浮点数只是欺骗 shell 将浮点数值当成字符存
于变量,只是打印就没问题,如果作为中间变量就不行,所以 test 数值比较只能是整数
字符串比较:
是否相等:
if [ string1=string2 ] 或者 if[ string!=string2 ]
比较大小:
大于小于号需要转义
大写和小写排序与 sort 不同
test处理大写字母和 sort 刚好相反
依然是用大于小于不等于比较,还多了 -n 和 -z;-n string 测试 string 长度
是否大于 0,-z 则检测长度是否为 0
test 命令 :
if test condition // 可以使用逻辑运算合并多个检测条件
then
command
fi
bashshell 提供另一种方式:
if [ condition ] comdition 左右必须有空格键
then
3
command
fi
评估一个变量有没有数据用 -n 和-z 方便:
变量为空, -z 以 0 状态退出, -n 则相反
if [ -n $variable ]
then
command
else
command
空变量和未初始化变量影响很大,在数值比较和字符串比较前最后测试下
文件比较:
test 可以测试文件系统上的文件状态和路径
eg:-e file 检测 file 是否存在
-d file 检测 file 是否存在且是一个目录
-f file 检测 file 是否存在并且是一个文件
file1 -nt file2 检测 file1 是否比 file2 新, -ot( 旧)
file 必须是完整的文件路径
bashshell 中添加了两个新功能:
双圆括号 表示数学表达式
((expression)),表达式 expression 可以是 任何的数学赋值表达式或数学比
较表达式 ,多条表达式用‘; ’分隔开
双括号内的表达式中大于小于号不必使用转义字符
双方括号 表示高等字符串处理函数
[[expression]] ,为字符串比较提供高级功能,他使用 test 命令中的字符串
比较,但是提供了 test 没有的模式匹配
如: if [[ $USER==r* ]]
then
case命令 :
casevariable in
pattern1 | pattern2) command;; //多个模式时用 | 分开
pattern3) command;; //注意是两个 ;
*)command;; //* 表示都不匹配
esac
12.更多结构化命令:
for:
基本格式:
for var in list //list 提供一系列可迭代的值,变量 var 不断迭代
do 当中的值, list 中每个值默认是以 空格键制表符和
commands 换行符 分隔的
done
剩余12页未读,继续阅读
资源评论
cwp36199360
- 粉丝: 1
- 资源: 11万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功