linux操作系统基础篇(九)

shell脚本的运算符与流程控制

1.运算符

1.1 算术运算符

+

-

*

/

%

[[email protected] ~]# echo $[3+1]
4

1.2 关系操作

与(())连用

<

>

<=

>=

==

!=

&&

||

test命令相关,[]可以达到一样的效果
[[email protected] ~]# x=1
[[email protected] ~]# [ $x -gt 1 ]
[[email protected] ~]# echo $?
0

1.3 赋值运算符

=

+=

*=

/=

%=

[[email protected] ~]# x=10
[[email protected] ~]# ((x%3))
[[email protected] ~]# echo $x
10
[[email protected] ~]# 
[[email protected] ~]# ((x%=3))
[[email protected] ~]# echo $x
1

1.4 shell里的所有计算器
$[] (()) $(()) expr bc bc -l

浮点运算:yum install bc -y

[[email protected] ~]# echo ‘scale=2;1/3‘|bc -l
.33

1.5 测试操作

命令执行后会返回到一个系统变量中 $?
如果$?值为0 表示命令执行成功 否则为失败

测试命令 test [ ] [[ ]] (( ))
打开man test 逐一介绍每个参数
1.6、测试文件状态
-d 目录
-s 文件长度 > 0、非空
-f 正规文件
-w 可写

-r 可读

-x 可执行

-L 符号连接

-u 文件有 suid 位设置

1.7、字符串测试
= 两个字符串相等
!= 两个字符串不相等
-z 空串
-n 非空串

[[email protected] ~]# var1=‘abc‘
[[email protected] ~]# var2=‘123‘
[[email protected] ~]# [ $var1 == $var2 ]
[[email protected] ~]# echo $?
1

1.8、测试数值
-eq 等于
-ne 不等于
-gt 大于
-lt 小于
-ge 大于等于
-le 小于等于

[[email protected] ~]# [ 10000 -gt 250 ] #不要使用大于号小于号等于号等,要使用man test中规定的,详见下一小节4拓展
[[email protected] ~]# echo $?
0

1.9、拓展测试符号 [[ ]] (())
数字测试符号
# [ 10 < 2 ] # 语法错误
-bash: 2: 没有那个文件或目录
#

# [[ 2 > 10 ]] # 结果错误
# echo $?
1
# [[ 20 > 10 ]] # 正确
# echo $?
0
# (( 10 < 20 ))
# echo $?
0

字符测试
# [ "aa" = "aa" ]
# echo $?
0
# [[ "aa" = "aa" ]]
# echo $?
0
# (( "aa" = "aa" )) #结果错误
# echo $?
1
混合测试
# [ a = a -a 10 < 20 ]
-bash: 20: 没有那个文件或目录
[[email protected] ~]# [[ a = a -a 10 < 20 ]]
-bash: syntax error in conditional expression
-bash: syntax error near `-a‘
[[email protected] ~]# [[ a = a && 10 < 20 ]]
[[email protected] ~]# echo $?
0
[[email protected] ~]# [[ a = a || 10 < 20 ]]
[[email protected] ~]# echo $?
0
[[email protected] ~]# (( a = a || 10 < 20 ))
[[email protected] ~]# echo $?
0
[[email protected] ~]# (( a = a && 10 < 20 ))
[[email protected] ~]# echo $?
0

二.流程控制

1.if的使用

if通常 是

if [判断条件];then      #如果条件满足那么

echo ‘输出内容’          #输出内容

else

echo ‘输出内容’        #否则输出

fi                         #fi来关闭

也可以加elif来实现多次判断

2.循环控制

while  (条件)

do    动作

done      完成

如果while后面加:那么这条控制进入无限循环。

for循环

for i in [1..100]

do

done

for循环的语法结构

在循环中

利用continue   在某一层进行循环的退出操作。

而break则是某一块进行循环的退出操作。

时间: 2024-10-07 06:10:05

linux操作系统基础篇(九)的相关文章

linux操作系统基础篇(三)

1.使用cat命令进行文件的纵向合并: 1) 掌握使用cat命令实现文件的纵向合并:a) 例如:使用cat命令将baby.age.baby.kg和baby.sex这三个文件纵向合并为baby文件的方法:cat baby.age baby.kg baby.sex >babyb) 例如:使用cat命令将baby.age文件的内容添加到baby2文件中的方法:cat baby.age >>baby2 2. 归档文件和归档技术:1) 掌握归档的定义:归档(archiving)就是将许多文件(或目

linux操作系统基础篇(七)

Linux服务篇(二) 1.nfs服务的搭建 安装: yum install rpcbind nfs-utils -y 配置: NFS服务的配置文件为 /etc/exports,这个文件是NFS的主要配置文件,不过系统并没有默认值,所以这个文件不一定会存在,可能要使用vim手动建立,然后在文件里面写入配置内容. /etc/exports文件内容格式: <输出目录> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)] a. 输出目录: 输出目录是指NF

linux操作系统基础篇(六)

linux服务篇 1.samba服务的搭建 samba的功能: samba是一个网络服务器,用于Linux和Windows之间共享文件.2. samba服务的启动.停止.重启service smb start|stop|restart3. samba的主配置文件为:/etc/samba/smb.conf4. 配置samba服务 5.创建用户并且将其创建为samba用户 useradd  smbin smbpasswd -a smbin 6.重启服务使配置生效 systemctl restart

linux操作系统基础篇(五)

Linux网络以及rpm安装yum源的配置 1.Linux网络 1. 使用ifconfig命令来维护网络(详见linux系统管理P422)1) fconfig命令的功能:显示所有正在启动的网卡的详细信息或设定系统中网卡的IP地址.2) 用ifconfig命令设定网卡的IP地址:例如:修改eth0网卡的IP地址为172.18.48.56和子网掩码255.255.255.128的命令:ifconfig eth0 172.18.48.56 netmask 255.255.255.1282. 使用ifu

linux操作系统基础篇(四)

系统监控 1. 系统监视和进程控制工具-top和free1) 掌握top命令的功能:top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.2) 了解使用top命令列出系统状态时,系统默认每5秒刷新一下屏幕上的显示结果. 1. 第一行是任务队列信息 12:38:33 当前时间 up 50days 系统运行时间,格式为时:分 1 user 当前登录用户数 load average: 0.06, 0.60, 0.48 系统负载. 三个数

linux操作系统基础篇(八)

shell脚本的变量以及正则表达式 一.变量 含义:程序的运行就是一些列状态的变量->用变量值的变化去表示. 命名规则 以字母或下划线开头,剩下的部分可以是:字母.数字.下划线. 最好遵循下述规范: 1.以字母开头2.使用中划线或者下划线做单词的连接3.同类型的用数字区分4.对于文件最好加上拓展名例如: sql_bak.tar.gz,log_bak.tar.bz2 1. 系统变量 set 和 env区别set:显示所有变量env:环境变量 2. 变量赋值 VARNAME=VALUEecho $V

linux操作系统基础篇(二)

命令创建用户:useradd 手动创建用户: /etc/passwd /etc/shadow /etc/gshadow /home/用户名/ /var/spool/mail id user 查看user用户个人信息. 用户家目录的隐藏文件模板  /etc/skel ls -ld 查看目录详细信息 chown -R oldboy:oldboy /home/oldboy 递归更改 家目录下环境配置文件env 查询环境变量set 查询所有变量环境变量可以被子进程继承 export b=2自定义变量不能

Linux操作系统基础解析之(四)——Linux基本命令剖析(1)

Linux操作系统自从出现以来,就备受关注.但是人们往往会有这样的一个印象:Linux比Windows难.为什么好多人都会有这样的想法呢?很简单,因为Windows是在更早的时候,甚至是大多数国人都没有认识到计算机的时候就已经被安装到X86架构的计算机上了.Microsoft公司寻求Intel公司的技术支持,并且建立合作之后,PC的市场就几乎被这两家公司垄断了.所以,很多人刚刚开始接触并逐渐学会使用计算机,Intel的X86架构的主机,而且这个主机上一般安装的都是Windows操作系统.因此,大

操作系统基础篇

程序运行的4个因素 (1).程序设计语言 (2).编译系统 (3).操作系统 (4).指令集结构(硬件系统) 操作系统的定义:操作系统是掌控计算机上所有事情的软件系统(硬件资源,软件资源) 操作系统对内存,i/o,cpu,外存等管理分为 1.cpu管理-------进程管理(@1.每个程序都能使用cpu,@2.非阻塞(一个进程不能一直占用cpu),@3.优先级) 2.内存管理------管理缓存,主存,磁盘等存储介质所形成的内存架构 3.外存管理-------文件系统,建立在磁盘空间上 4. i