shel脚本基础系列(二)语法+运算+判断(下)

简介: shel脚本基础系列(二)语法+运算+判断

6、字符串判断选项

image.png

7、其他命令通过 man test 查看,有string的比较,文件判断等

六、多条件判断

1、语法

(1)逻辑与

-a 或者 &&

(2)逻辑或

 -o 或者 ||

(3)示例

#判断用户是否是管理员,满足条件打印后面内容
[ $(id -u) -eq 0 ]&& echo “是管理员” 

2、if 结构

(1)语法一

if [ condition ];then
command
fi

(2)语法二

if test condition ;then
command
else
command
fi

(3) 语法三

if test condition ;then
command
elif test condition ;then
command
else test condition ;then
command
fi

3、应用案例

(1)判断主机是否ping通

#!/bin/bash
read -p 'ping 哪个ip:' ip
#脚本里面执行命令不输出
ping -c1 $ip &>/dev/null
if [ $? -eq 0 ];then
echo 通了
else
echo 不通
fi

(2)判断一个进程是否存在, 0为存在,使用ps命令

#grep -v 'grep' 结果不包含当前命令进程
ps -ef|grep clickhouse|grep -v 'grep';echo $?

(3)判断一个进程是否存在, 0为存在,使用pgrep命令

#判断进程是否存在
pgrep clickhouse &>/dev/null
test $? -eq 0 && echo "当前clickhouse进程存在" || echo "当前进程不存在"

(4)判断一个用户是否存在

read -p "请输入一个用户:" username
id $username &>/dev/null
if test $? -eq 0;then
echo "$username用户存在"
else
echo "$username用户不存在"
fi

七、总结

以上就是就是关于shell语法变量,运算,判断相关所有内容,希望对大家有帮助,可以参考一下,觉得不错的话,欢迎微信搜索关注java基础笔记,后面会不断更新相关知识,大家一起进步。

目录
相关文章
|
7月前
|
C++
【C++】istream类型对象转换为逻辑条件判断值
【C++】istream类型对象转换为逻辑条件判断值
【C++】istream类型对象转换为逻辑条件判断值
|
7月前
02-python的基础语法-标识符/运算符/字符串拓展/字符串的拼接/字符串格式化/字符串精度控制/字符串格式化方式2/对表达式进行格式化/练习题/数据输入-input语句
02-python的基础语法-标识符/运算符/字符串拓展/字符串的拼接/字符串格式化/字符串精度控制/字符串格式化方式2/对表达式进行格式化/练习题/数据输入-input语句
|
运维 Shell Python
【运维知识高级篇】超详细的Shell编程讲解2(变量切片+统计变量长度+字串删除+字串替换+七种方法进行数值运算+整数比较+多整数比较+文件判断+字符串比对+正则比对+配合三剑客的高阶用法)(一)
【运维知识高级篇】超详细的Shell编程讲解2(变量切片+统计变量长度+字串删除+字串替换+七种方法进行数值运算+整数比较+多整数比较+文件判断+字符串比对+正则比对+配合三剑客的高阶用法)
135 0
|
7月前
|
存储 程序员 编译器
【新手解答5】深入探索 C 语言:宏中的文本、标识符和字符串 + 递归运算、条件语句、循环 + `switch-case` 与多项条件和枚举的差别
【新手解答5】深入探索 C 语言:宏中的文本、标识符和字符串 + 递归运算、条件语句、循环 + `switch-case` 与多项条件和枚举的差别
83 0
|
运维 Shell Perl
【运维知识高级篇】超详细的Shell编程讲解2(变量切片+统计变量长度+字串删除+字串替换+七种方法进行数值运算+整数比较+多整数比较+文件判断+字符串比对+正则比对+配合三剑客的高阶用法)(二)
【运维知识高级篇】超详细的Shell编程讲解2(变量切片+统计变量长度+字串删除+字串替换+七种方法进行数值运算+整数比较+多整数比较+文件判断+字符串比对+正则比对+配合三剑客的高阶用法)(二)
137 0
|
Shell
【shell】编写脚本基础、理论知识、参数定义、符号运算(下)
文章目录 前言 一、定义 二、规范 2.1 首行规范 2.2 执行方式 2.3 脚本错误 三、参数 3.1 变量分类 3.1.1 内置变量 3.1.2 预定义变量
108 0
【shell】编写脚本基础、理论知识、参数定义、符号运算(下)
|
Java Shell Linux
Shell流程控制(重点)、if 判断、case 语句、let用法、for 循环中有for (( 初始值;循环控制条件;变量变化 ))和for 变量 in 值 1 值 2 值 3… 、while 循环
Shell流程控制(重点)、if 判断、case 语句、let用法、for 循环中有for (( 初始值;循环控制条件;变量变化 ))和for 变量 in 值 1 值 2 值 3… 、while 循环
Shell流程控制(重点)、if 判断、case 语句、let用法、for 循环中有for (( 初始值;循环控制条件;变量变化 ))和for 变量 in 值 1 值 2 值 3… 、while 循环
|
Shell Perl
【shell】编写脚本基础、理论知识、参数定义、符号运算(上)
文章目录 前言 一、定义 二、规范 2.1 首行规范 2.2 执行方式 2.3 脚本错误 三、参数 3.1 变量分类 3.1.1 内置变量 3.1.2 预定义变量
113 0
|
Java C++ Python
Python 为什么能支持任意的真值判断?
Python 在涉及真值判断(Truth Value Testing)时,语法很简便。 比如,在判断某个对象是否不为 None 时,或者判断容器对象是否不为空时,并不需要显示地写出判断条件,只需要在 if 或 while 关键字后面直接写上该对象即可。 如果需要作出相反的判断,即“如果为 None 或为空”,只需要写成if not my_list 即可。
134 0
|
存储 前端开发 JavaScript
前端培训-初级阶段(13)-ECMAScript(语法,变量 ,值 , 类型,运算符 , 语句)
前端最基础的就是 HTML+CSS+Javascript。掌握了这三门技术就算入门,但也仅仅是入门,现在前端开发的定义已经远远不止这些。前端小课堂(HTML/CSS/JS),本着提升技术水平,打牢基础知识的中心思想,我们开课啦(每周四)。 该文为前端培训-初级阶段(13、18) (介绍了 ECMAScript 历史,ES6 常用点)的补充内容。 本文介绍ECMAScript基础知识。
150 0
前端培训-初级阶段(13)-ECMAScript(语法,变量 ,值 , 类型,运算符 , 语句)