当前位置: 首页 > 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.dtcms.com/a/316701.html

相关文章:

  • MLS学习
  • vue3 计算属性
  • Docker 容器内进行 frp 内网穿透
  • 关于怎么知道linux(ubuntu)系统交叉编译器的命令的方法:
  • web-vue工作流程
  • 从AUTOSAR角度理解CAN以及CANFD
  • 权值树状数组
  • 政务信息化项目建设管理办法的主要内容有哪些
  • 防火墙和网闸的区别,什么场景下,需要用到网闸?
  • iOS混淆工具有哪些?技术演进与选型趋势全景解析
  • 《C++》继承完全指南:从入门到精通
  • BeanFactory 和 ApplicationContext 的区别?
  • python-自定义抠图
  • 【分析学】内积空间中的线性算子
  • lumerical——多模干涉耦合器(MMI)
  • 机械学习--决策树(实战案例)
  • lumerical——Y分支功分器
  • Linux学习-数据结构(链表)
  • GISBox一键转换IFC到3DTiles
  • 【PCIE044】基于 JFM7VX690T 的全国产化 FPGA 开发套件
  • 分布式网关技术 + BGP EVPN,解锁真正的无缝漫游
  • 防火墙安全策略练习
  • PBX Feature Code(功能码)
  • 【DAB收音机】DAB系统架构介绍
  • mq_unlink系统调用及示例
  • 图像处理控件Aspose.Imaging教程:使用 C# 将 SVG 转换为 EMF
  • C++ 变量初始化方式总结 | 拷贝初始化 | 列表初始化 | 值初始化
  • 【PCB】3. 信号部分设计
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘keras’问题
  • Nginx入门:高性能Web服务器详解