菜鸟学Linux 第015篇笔记 bash脚本 条件判断

简介:

菜鸟学Linux 第015篇笔记 bash脚本 条件判断



bash如何实现条件判断?


条件测试类型:

整数测试

字符测试

文件测试


条件测试表达式:

[ expression ] 中括号后必须加空格

` exrepssion`

test expression 

整数比较(双目运算):

-eq 测试两个整数是否相等:相等为真,不等为假;比如$A -eq $B 正确返回值显示

-ne 测试两个整数是否不等;不等为真,等为假;

-gt 测试一个数是否大于另一个数,大为真,小为假(包含等于)为假;

-lt 测试一个数是否小于另一个数,小为真,大为假;

-ge 大于或等于;

-le 小于或等于;

命令间的逻辑关系:

逻辑与:&&

解释:第一个条件为假时,第二个条件不用再判断,最终结果已经呈现;

  第一个条件为真时,第二个条件必须判断。

逻辑或:||

id user4 &> /dev/null && echo "Hello, user1."

! id user6 &> /dev/null && useradd user6

id user6 &> /dev/null || useradd user6

如果用户存在显示存在,否则添加该用户

id user4 &> /dev/null && echo "Hello, user1." || useradd user4

如果用户不存在,就添加,否则显示已存在

! id user4 &> /dev/null && useadd user4 || echo "hello, user4"

如果用户不存在,加添用户并设置密码;否则,显示其已经存在

! id user4 &> /dev/null && useadd user4 && echo "user4" | 

passwd --stdin user4|| echo "hello, user4"

条件判断,控制结束

单分支if语句:

if条件判断; then

statement1

statement2

...

fi

双分支if语句:

if 判断条件; then

statement1

statemtnt2

...

else

statement1

statemtnt2

...

fi

shell 算术运算

A=3

B=6

1、let 算术运算表达式

let C=$A+$B

2、S[算术运算表达式]

C=$[$A+$B]

3、$((算术运算表达式))

$(($A+$B))

4、expr 算术运算表达式,表达式中各操作数及去处符之间要有空格

C=`expr $A + $B`

变量取名规则

1、只能包含字母、数字和下划线,并且不能数字开头;

2、不应该跟系统中变量重名,否则会覆盖变量名;

3、最好做到见名知义;

小练习

script1:

1、添加3个用户user1,user2,user3;但要事先判断用户是否存在,不存在而后再添加;

2、显示当前系统上共有多少个用户;

script2:

1、如果其UID为0,就显示此为管理员,否则显示为普通用户

key

script1

#!/bin/bash

! id user1 &> /dev/null && useradd user1 && echo "user1" |

(连接上一行别分开)passwd --stdin user1 || echo "User1 is existed."

! id user2 &> /dev/null && useradd user2 && echo "user2" | 

(连接上一行别分开)passwd --stdin user2 || echo "User2 is existed."

! id user3 &> /dev/null && useradd user3 && echo "user3" | 

(连接上一行别分开)passwd --stdin user3 || echo "User3 is existed."


LINES=`wc -l /etc/passwd | cut -d' ' -f1`

echo "$LINES users"

script2

#!/bin/bash

NAME=user1

IDS=`id -u $NAME`

[ $IDS -eq 0 ] && echo "You are a root" || echo "Common user."

#!/bin/bash

#

grep "\<bash$" /etc/passwd &> /dev/null

RV1=$?

if [ $RV1 -eq 0 ]; then 

USERS=`grep "\<bash$" /etc/passwd | wc -l`

echo "$USERS are useing the shells of bash"

else

echo "No such users"


fi

本文转自Winthcloud博客51CTO博客,原文链接http://blog.51cto.com/winthcloud/1862699如需转载请自行联系原作者


Winthcloud

相关文章
|
2天前
|
消息中间件 Java Kafka
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
本文介绍了Kafka集群的搭建过程,涵盖从虚拟机安装到集群测试的详细步骤。首先规划了集群架构,包括三台Kafka Broker节点,并说明了分布式环境下的服务进程配置。接着,通过VMware导入模板机并克隆出三台虚拟机(kafka-broker1、kafka-broker2、kafka-broker3),分别设置IP地址和主机名。随后,依次安装JDK、ZooKeeper和Kafka,并配置相应的环境变量与启动脚本,确保各组件能正常运行。最后,通过编写启停脚本简化集群的操作流程,并对集群进行测试,验证其功能完整性。整个过程强调了自动化脚本的应用,提高了部署效率。
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
|
1月前
|
Ubuntu Linux Shell
Linux 系统中的代码类型或脚本类型内容
在 Linux 系统中,代码类型多样,包括 Shell 脚本、配置文件、网络配置、命令行工具和 Cron 定时任务。这些代码类型广泛应用于系统管理、自动化操作、网络配置和定期任务,掌握它们能显著提高系统管理和开发的效率。
|
1月前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
2月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
75 1
|
2月前
|
Devops 关系型数据库 大数据
1000个开源免费的bash脚本合集
【10月更文挑战第4天】
|
2月前
|
存储 Shell Linux
【Linux】shell基础,shell脚本
Shell脚本是Linux系统管理和自动化任务的重要工具,掌握其基础及进阶用法能显著提升工作效率。从简单的命令序列到复杂的逻辑控制和功能封装,Shell脚本展现了强大的灵活性和实用性。不断实践和探索,将使您更加熟练地运用Shell脚本解决各种实际问题
37 0
|
关系型数据库 MySQL Shell
【Linux命令】-bash: mysql: command not found
【Linux命令】-bash: mysql: command not found
143 0
|
Shell Linux
Linux pip命令报错 -bash: pip: command not found
Linux pip命令报错 -bash: pip: command not found
367 0
|
Linux
LINUX用户执行过的命令,保存在.bash_history
LINUX用户执行过的命令,保存在.bash_history
104 0
|
Shell Linux
【快速入门Linux】3_Linux命令—终端命令格式、命令帮助信息、bash标准输入输出
【快速入门Linux】3_Linux命令—终端命令格式、命令帮助信息、bash标准输入输出
141 0
【快速入门Linux】3_Linux命令—终端命令格式、命令帮助信息、bash标准输入输出