当前位置: 首页 > news >正文

LINUX 85 SHElL if else 前瞻 实例

问题

判断用户是否存在
id user
id $user
在这里插入图片描述
在这里插入图片描述
变量
在这里插入图片描述
在这里插入图片描述

判断vsftpd软件包被安装

rpm -q vsftpd
rpm -ql vsftpd >& null
在这里插入图片描述
[root@web ~]# rpm -ql vsftpd >/dev/null 2>&1
您在 /var/spool/mail/root 中有邮件
在这里插入图片描述
在这里插入图片描述
yum install vsftpd
内核主版本判断
uname -r
在这里插入图片描述
cut -d
在这里插入图片描述

[root@web ~]# uname -r
3.10.0-1160.el7.x86_64
您在 /var/spool/mail/root 中有邮件
[root@web ~]#

cut -d . f1
if

[root@web ~]# $[ uname -r ]
bash: 0: 未找到命令...
您在 /var/spool/mail/root 中有邮件
[root@web ~]#

在这里插入图片描述
sheel 中 [] () {} 区别
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
a=$( uname -r)
在这里插入图片描述

[root@web ~]# cat uname.sh
# discription:setence the numuber  of the  linux`s type
a=$( uname -r )
b=$( cut -d. 1 $a )
echo $a
echo $b
您在 /var/spool/mail/root 中有邮件
[root@web ~]# ./uname.sh
cut: 您必须指定一组字节、字符或域的列表
Try 'cut --help' for more information.
3.10.0-1160.el7.x86_64

在这里插入图片描述
在这里插入图片描述

[root@web ~]# cat uname.sh
# discription:setence the numuber  of the  linux`s type
a=$( uname -r )
b=$( echo $a||cut -d. f1 )
echo $a
echo $b
[root@web ~]# ./uname.sh
3.10.0-1160.el7.x86_64
3.10.0-1160.el7.x86_64

在这里插入图片描述
在这里插入图片描述

[root@web ~]# cat uname.sh
# description:setence the number  of the  linux`s type
a=$( uname -r )
b=$( echo "$a" |cut -d. -f1 )
c=$( echo "$a" | cut -d. -f2 )
if $b=2 && $c>=6;then
echo $a
else
fi
[root@web ~]# ./uname.sh
./uname.sh:行8: 未预期的符号 `fi' 附近有语法错误
./uname.sh:行8: `fi'
[root@web ~]#

在这里插入图片描述

记录

root@192.168.235.20's password:┌────────────────────────────────────────────────────────────────────┐│                        • MobaXterm 20.0 •                          ││            (SSH client, X-server and networking tools)             ││                                                                    ││ ➤ SSH session to root@192.168.235.20                               ││   • SSH compression : ✘                                            ││   • SSH-browser     : ✔                                            ││   • X11-forwarding  : ✔  (remote display is forwarded through SSH) ││   • DISPLAY         : ✔  (automatically set on remote server)      ││                                                                    ││ ➤ For more info, ctrl+click on help or visit our website           │└────────────────────────────────────────────────────────────────────┘Last login: Mon Aug  4 19:19:08 2025 from 192.168.235.1
[root@web ~]# read -p "请输入用户名:" user
请输入用户名:xiacao
您在 /var/spool/mail/root 中有新邮件
[root@web ~]# id $user &> /dev/null
[root@web ~]# test $? -eq 0
您在 /var/spool/mail/root 中有邮件
[root@web ~]# $?
bash: 1: 未找到命令...
[root@web ~]# vim user.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# cat user.sh
read -p  "请输入用户名:" user
id $user &> /dev/null
test $? -eq 0 && echo "该用户存在" || echo "不存在"
[root@web ~]# chmod +x user.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# ./user.sh
请输入用户名:caozx26
该用户存在
您在 /var/spool/mail/root 中有邮件
[root@web ~]#
[root@web ~]# rpm -ql vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
/etc/vsftpd/vsftpd_conf_migrate.sh
/usr/lib/systemd/system-generators/vsftpd-generator
/usr/lib/systemd/system/vsftpd.service
/usr/lib/systemd/system/vsftpd.target
/usr/lib/systemd/system/vsftpd@.service
/usr/sbin/vsftpd
/usr/share/doc/vsftpd-3.0.2
/usr/share/doc/vsftpd-3.0.2/AUDIT
/usr/share/doc/vsftpd-3.0.2/BENCHMARKS
/usr/share/doc/vsftpd-3.0.2/BUGS
/usr/share/doc/vsftpd-3.0.2/COPYING
/usr/share/doc/vsftpd-3.0.2/Changelog
/usr/share/doc/vsftpd-3.0.2/EXAMPLE
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/README
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/README.configuration
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/vsftpd.conf
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/vsftpd.xinetd
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD/README
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD/README.configuration
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD/vsftpd.conf
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/PER_IP_CONFIG
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/PER_IP_CONFIG/README
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/PER_IP_CONFIG/README.configuration
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/PER_IP_CONFIG/hosts.allow
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/README
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_HOSTS
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_HOSTS/README
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/README
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/README.configuration
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/logins.txt
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/vsftpd.conf
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/vsftpd.pam
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS_2
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS_2/README
/usr/share/doc/vsftpd-3.0.2/FAQ
/usr/share/doc/vsftpd-3.0.2/INSTALL
/usr/share/doc/vsftpd-3.0.2/LICENSE
/usr/share/doc/vsftpd-3.0.2/README
/usr/share/doc/vsftpd-3.0.2/README.security
/usr/share/doc/vsftpd-3.0.2/REWARD
/usr/share/doc/vsftpd-3.0.2/SECURITY
/usr/share/doc/vsftpd-3.0.2/SECURITY/DESIGN
/usr/share/doc/vsftpd-3.0.2/SECURITY/IMPLEMENTATION
/usr/share/doc/vsftpd-3.0.2/SECURITY/OVERVIEW
/usr/share/doc/vsftpd-3.0.2/SECURITY/TRUST
/usr/share/doc/vsftpd-3.0.2/SIZE
/usr/share/doc/vsftpd-3.0.2/SPEED
/usr/share/doc/vsftpd-3.0.2/TODO
/usr/share/doc/vsftpd-3.0.2/TUNING
/usr/share/doc/vsftpd-3.0.2/vsftpd.xinetd
/usr/share/man/man5/vsftpd.conf.5.gz
/usr/share/man/man8/vsftpd.8.gz
/var/ftp
/var/ftp/pub
您在 /var/spool/mail/root 中有邮件
[root@web ~]# rpm -ql vsftpd >& null
[root@web ~]# rpm -ql vsftpd &> null
您在 /var/spool/mail/root 中有邮件
[root@web ~]# rpm -ql vsftpd >/dev/null 2>&1
您在 /var/spool/mail/root 中有邮件
[root@web ~]# test  $? -eq 0
您在 /var/spool/mail/root 中有邮件
[root@web ~]# vim vsftpd.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# cat vsftpd.sh
rpm -ql vsftpd >/dev/null 2>&1
if [$? -eq 0];then"already installed "
else"not be installed"fi
[root@web ~]# chmod +x vsftpd.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# ./vsftpd.sh
./vsftpd.sh:行2: [0: 未找到命令
./vsftpd.sh:行5: not be installed: 未找到命令
[root@web ~]# vim vsftpd.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# cat vsftpd.sh
rpm -ql vsftpd >/dev/null 2>&1
if [$? -eq 0];thenecho  "already installed "
elseecho   "not be installed"fi
[root@web ~]# ./vsftpd.sh
./vsftpd.sh:行2: [0: 未找到命令
not be installed
您在 /var/spool/mail/root 中有邮件
[root@web ~]# vim vsftpd.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# cat vsftpd.sh
rpm -ql vsftpd >/dev/null 2>&1
if [ $? -eq 0 ];thenecho  "already be installed"
elseecho   "not be installed"fi
[root@web ~]# ./vsftpd.sh
already be installed
您在 /var/spool/mail/root 中有邮件
[root@web ~]# vim vsftpd1.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# cat vsftpd1.sh
rpm -ql vsftpd >/dev/null 2>&1if [ $? -eq 0 ];thenecho "already be installed"elseecho "not be installed,will install"yum install vsftpd >/dev/null 2>&1if [ $? -eq 0 ];thenecho " be successfullly  installed"elseecho "fail to installed"fi
fi
[root@web ~]# chmod +x vsftpd.sh
[root@web ~]# chmod +x vsftpd1.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# ./vsftpd1.sh
already be installed
您在 /var/spool/mail/root 中有邮件
[root@web ~]# uname -r
3.10.0-1160.el7.x86_64
您在 /var/spool/mail/root 中有邮件
[root@web ~]# uname
Linux
您在 /var/spool/mail/root 中有邮件
[root@web ~]# $[ uname -r ]
bash: 0: 未找到命令...
您在 /var/spool/mail/root 中有邮件
[root@web ~]# a=$( uname -r )
您在 /var/spool/mail/root 中有邮件
[root@web ~]# b=$( cut a -d .1 )
cut: 分界符必须是单个字符
Try 'cut --help' for more information.
[root@web ~]# b=$( cut -d . 1 a)
cut: 您必须指定一组字节、字符或域的列表
Try 'cut --help' for more information.
您在 /var/spool/mail/root 中有邮件
[root@web ~]# b=$( cut -d. 1 a)
cut: 您必须指定一组字节、字符或域的列表
Try 'cut --help' for more information.
[root@web ~]# c=$( cut -d. 2 a)
cut: 您必须指定一组字节、字符或域的列表
Try 'cut --help' for more information.
您在 /var/spool/mail/root 中有邮件
[root@web ~]# vim uname.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# cat uname.sh
# discription:setence the numuber  of the  linux`s type
a=$( uname -r )
echo $a
[root@web ~]# chmod +x uname.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# ./uname.sh
3.10.0-1160.el7.x86_64
[root@web ~]# vim uname.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# cat uname.sh
# discription:setence the numuber  of the  linux`s type
a=$( uname -r )
b=$(cut -d . 1 $a)
echo $a
echo $b
[root@web ~]# ./uname.sh
cut: 您必须指定一组字节、字符或域的列表
Try 'cut --help' for more information.
3.10.0-1160.el7.x86_64[root@web ~]# vim uname.sh
[root@web ~]# cat uname.sh
# discription:setence the numuber  of the  linux`s type
a=$( uname -r )
b=$( cut -d. 1 $a )
echo $a
echo $b
您在 /var/spool/mail/root 中有邮件
[root@web ~]# ./uname.sh
cut: 您必须指定一组字节、字符或域的列表
Try 'cut --help' for more information.
3.10.0-1160.el7.x86_64[root@web ~]# vim uname.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# cat uname.sh
# discription:setence the numuber  of the  linux`s type
a=$( uname -r )
b=$( echo $a||cut -d. f1 )
echo $a
echo $b
[root@web ~]# ./uname.sh
3.10.0-1160.el7.x86_64
3.10.0-1160.el7.x86_64
[root@web ~]# vim /uname.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# vim uname.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# cat uname.sh
# description:setence the number  of the  linux`s type
a=$( uname -r )
b=$( echo "$a" |cut -d. -f1 )
echo $a
echo $b
[root@web ~]# ./uname.sh
3.10.0-1160.el7.x86_64
3
您在 /var/spool/mail/root 中有邮件
[root@web ~]# vim uname.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# cat uname.sh
# description:setence the number  of the  linux`s type
a=$( uname -r )
b=$( echo "$a" |cut -d. -f1 )
c=$( echo "$a" | cut -d. -f2 )
if $b=2,$c>=6
echo $a
else
fi
[root@web ~]# ./uname.sh
./uname.sh:行7: 未预期的符号 `else' 附近有语法错误
./uname.sh:行7: `else '
[root@web ~]# vim uname
您在 /var/spool/mail/root 中有邮件
[root@web ~]# vim uname.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# cat uname.sh
# description:setence the number  of the  linux`s type
a=$( uname -r )
b=$( echo "$a" |cut -d. -f1 )
c=$( echo "$a" | cut -d. -f2 )
if $b=2 && $c>=6;then
echo $a
else
fi
[root@web ~]# ./uname.sh
./uname.sh:行8: 未预期的符号 `fi' 附近有语法错误
./uname.sh:行8: `fi'
[root@web ~]# vim uname.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# cat uname.sh
# description:setence the number  of the  linux`s type
a=$( uname -r )
b=$( echo "$a" | cut -d. -f1 )
c=$( echo "$a" | cut -d. -f2 )
if [$b -eq 2] && [$c -ge 6];then
echo $a
else
echo "wrong"
fi
[root@web ~]# ./uname.sh
./uname.sh:行5: [3: 未找到命令
wrong
[root@web ~]# vim uname.sh
您在 /var/spool/mail/root 中有邮件
[root@web ~]# cat uname.sh
# description:setence the number  of the  linux`s type
a=$( uname -r )
b=$( echo "$a" | cut -d. -f1 )
c=$( echo "$a" | cut -d. -f2 )
if [ $b -eq 2 ] && [ $c -ge 6 ];then
echo $a
else
echo "wrong"
fi
[root@web ~]# ./uname.sh
wrong
[root@web ~]#
http://www.lryc.cn/news/610519.html

相关文章:

  • 解锁n8n:开启自动化工作流的无限可能
  • 数据挖掘,到底是在挖掘什么?
  • Leetcode-2080区间内查询数字的频率
  • 417页PDF | 2025年“人工智能+”行业标杆案例荟萃
  • 机器学习——集成学习(Ensemble Learning)详解:原理、方法与实战应用
  • 深度拆解Dify:开源LLM开发平台的架构密码与技术突围
  • 服务器端口连通性的测试工具和方法
  • ApacheCon Asia 2025 中国开源年度报告:Apache Doris 国内第一
  • Spring Boot 整合 Thymeleaf
  • 全球氨运输罐行业发展现状及趋势分析报告
  • makefile的使用与双向链表
  • Docker Compose管理新范式:可视化控制台结合cpolar提升容器编排效率?
  • Docker使用的常见问题
  • 解决微信小程序中camera组件被view事件穿透触发对焦以及camera的bindtap事件
  • 性能优化篇:SQL数据库查表速度优化
  • JAVA无人共享球杆柜系统球杆柜租赁系统源码支持微信小程序
  • TortoiseGit配置SSH Key或Putty Key
  • W3D引擎游戏开发----从入门到精通【22】
  • 微信小程序功能实现:页面导航与跳转
  • AI产品经理如何理解和应用Transformer架构,以提升产品的技术能力和用户体验?
  • SpringBoot基础复习
  • 06 基于sklearn的机械学习-欠拟合、过拟合、正则化、逻辑回归、k-means算法
  • 如何基于MQ实现分布式事务
  • 机器学习(13):逻辑回归
  • Go语言 并发安全sync
  • 华为OD机考2025C卷 - 开源项目热度榜单 (Java Python JS C++ C )
  • C语言:构造类型学习
  • python基础:数据解析BeatuifulSoup,不需要考虑前端形式的一种获取元素的方法
  • 笛卡尔坐标
  • RabbitMQ--介绍