当前位置: 首页 > 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.xdnf.cn/news/1246105.html

相关文章:

  • Goby 漏洞安全通告| NestJS DevTools /inspector/graph/interact 命令执行漏洞(CVE-2025-54782)
  • 国内办公安全平台新标杆:iOA一体化办公安全解决方案
  • 机械学习--决策树(实战案例)
  • Linux和mysql练习题2
  • Electron-updater + Electron-builder + IIS + NSIS + Blockmap 完整增量更新方案
  • HTML 媒体元素概述
  • LeetCode 71~90题解
  • MongoDB 从3.4.0升级到4.0.0完整指南实战-优雅草蜻蜓I即时通讯水银版成功升级-卓伊凡|bigniu
  • Redis内存耗尽时的应对策略
  • # 【Java + EasyExcel 实战】动态列 + 公式备注 Excel 模板导出全流程(附完整代码)
  • 分布式文件系统06-分布式中间件弹性扩容与rebalance冲平衡
  • PromptPilot搭配Doubao-seed-1.6:定制你需要的AI提示prompt
  • 行为模式-模板方法模式
  • 脚手架开发-准备配置-配置文件的准备项目的一些中间件
  • 超轻量级通用人脸检测模型解析:1MB以下的AI如何实现实时检测
  • VUE-第二季-02
  • 数据结构(14)链式结构二叉树
  • Java技术栈/面试题合集(4)-Spring篇
  • ENSP防火墙安全策略简单案例
  • vue3通过按钮实现横向滚动或鼠标滚动横坐标滚动
  • MousePlus鼠标右键增强工具v5.5.25,支持鼠标轮盘功能
  • Linux驱动25 --- RkMedia音频API使用增加 USB 音视频设备
  • Windows 远程管理 (WinRM)问题详解包括c#与python例子
  • C++ 变量初始化方式总结 | 拷贝初始化 | 列表初始化 | 值初始化
  • YooAsset源码阅读-Downloader篇
  • 本地使用uv管理的python项目怎么部署到服务器?
  • 攻击实验(ARP欺骗、MAC攻击、报文洪水攻击、DNS欺骗)
  • Laravel The requested URL /hellowzy was not found on this server. 404 问题的解决
  • 2025年渗透测试面试题总结-01(题目+回答)
  • 《Node.js与 Elasticsearch的全文搜索架构解析》