Linux开发-Shell

推荐书籍:刘遄老师的《Linux就该这么学》

一、Shell基础

Shell终端解释器可以当作人与计算机硬件之间的“翻译官”,它作为用户与Linux系统内部的通信媒介,除了能够支持各种变量和参数外,还提供了诸如循环、分支等高级编程语言所有的控制结构特性。
Shell脚本命令的工作方式有两种:交互式和批处理。

  • 交互式:用户每输入一条命令就立即执行。
  • 批处理:由用户事先编写好一个完整的Shell脚本,Shell会一次性执行脚本中的诸多命令。
    在Shell脚本中,可以使用很多Linux命令以及正则表达式、管道符、数据流重定向等语法规则。将内部功能模块化后通过逻辑语句进行处理,最终形成日常所用的Shell脚本。
查看命令终端解释器
echo $SHELL
Shell脚本文件规范

一个简单的脚本文件example.sh:用于查看当前工作路径并列出当前目录下所有文件及属性信息。

#!/bin/bash
# For Example BY linux
pwd
ls -al
  • Shell脚本文件的名称可以任意,但便于识别通常使用.sh作为后缀。
  • 第一行的脚本声明(#!)用于告知系统使用哪种Shell解释器。
  • 第二行通常添加该脚本必要的注释信息(注释信息以#开头)。
  • 其后的可执行语句就是平时所使用Linux命令。
文件测试语句
运算符作用
-d测试文件是否为目录类型。返回值为0,表示目录。
-e测试文件是否存在。返回值为0,表示文件存在。
-f判断文件是否为一般文件。返回值为0,表示为一般文件。
-r测试当前用户是否有权限读取。返回值为0,表示有读取权限。
-w测试当前用户是否有权限写入。返回值为0,表示有写入权限。
-x测试当前用户是否有权限执行。返回值为0,表示有执行权限。

注:执行结果可以由”echo $?“查看。

逻辑测试语句
运算符作用
&&与运算,表示前面的命令执行成功后才会执行它后面的命令。
||或运算,表示前面的命令执行失败后才会执行它后面的命令。
!非运算,表示将条件测试中的判断结果取相反值。
整数值比较语句
运算符作用
-eq是否等于
-ne是否不等于
-gt是否大于
-lt是否小于
-le是否等于或小于
-ge是否大于或等于
字符串比较语句
运算符作用
=比较字符串内容是否相同
!=比较字符串内容是否不同
-z判断字符串内容是否为空

二、用户参数

为了让Shell脚本程序更好地满足用户的一些实时需求,Shell脚本语言内设了用于接收参数的变量,变量之间使用空格间隔。执行脚本时可以如下传入参数。

./Example.sh one two three four five six
参数作用
$#用于获取传入参数的总个数
$0用于获取当前Shell脚本程序的名称
$*用于获取所有位置的参数值(*表示1,2,3,…)
$?用于获取上一次命令的执行返回值

三、流程控制

1、if条件测试语句
if 条件测试操作1 then
	命令序列1
elif 条件测试操作2 then
	命令序列2
else
	命令序列3
fi
2、for条件循环语句
for 变量名 in 取值列表
do
	命令序列
done
3、while条件循环语句
while 条件测试操作
do
	命令序列
done
4、case条件测试语句
case 变量值 in
模式1)
	命令序列1
	;;
模式2)
	命令序列2
	;;
模式n)
	命令序列n
	;;
*)
	默认命令序列
esac
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ftswsfb

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值