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.pswp.cn/web/92076.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/92076.shtml
英文地址,請注明出處:http://en.pswp.cn/web/92076.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2025 年非關系型數據庫全面指南:類型、優勢

非關系型數據庫的分類與特點隨著數據量呈指數級增長和數據類型日益多樣化,傳統關系型數據庫在處理海量非結構化數據時面臨著嚴峻挑戰。非關系型數據庫(NoSQL)應運而生,它摒棄了傳統關系模型的約束,采用更靈活的數據存儲…

深度殘差網絡ResNet結構

Deep Residual Learning for Image Recognition,由Kaiming He、Xiangyu Zhang、Shaoqing Ren和Jian Sun于2016年發表在CVPR上 1512.03385 (arxiv.org)https://arxiv.org/pdf/1512.03385 下圖中,左側為VGG19網絡,中間為34層的普通網絡&#xf…

python筆記--socket_TCP模擬瀏覽器實現

""" 1,導包 2,創建TCP套接字 3,建立連接 4,拼接客戶端請求報文 5,發送請求報文 6,接收響應報文 7,過濾出html頁面 8,保存為html文件 9,關閉套接字 """ # 1,導包 import socket # 2,創建TCP套接字 tcp_socketsocket.socket(socket.AF_INET,socket…

西門子PLC基礎指令4:置位指令 S、復位指令 R

布爾指令 1、置位指令 S Setbit 是要進行置位操作的地址的首地址,N 是從該首地址開始連續置位的位數 。 LD I0.0 // 裝載輸入繼電器I0.0的狀態(當I0.0為ON時,執行后續指令) S Q0.0, 3 // 從Q0.0開始,連續置位3…

2.3 子組件樣式沖突詳解

Vue2組件樣式沖突的成因與解決方案組件樣式沖突的根本原因在Vue單頁面應用中,所有組件的DOM結構最終都會合并到同一個index.html 頁面中。若子組件未使用scoped屬性,其樣式會默認全局生效,導致不同組件中相同選擇器(如h1、.contai…

26-數據倉庫與Apache Hive

1.數據倉庫 是什么?解決什么?1.1 數據倉庫Data Warehouse 數倉 / DW 是一個用于存儲、分析、報告的數據系統.目的:構建面向分析的集成數據環境,分析結構為企業提供決策支持。數倉專注于分析數倉本身不“”生產“”數據&#xff0c…

前端開發技術教學(二)

書接上回:前端開發技術教學(一) -CSDN博客 必要資源:TRAE - The Real AI Engineer 目錄 一) 自定義函數 - function 二) DOM操控 DOM事件 a.) onclick b.) onkeydown 三) AI寫代碼 書接上回說到的前端3種主語言以及其用法,這期我們…

設計模式 - 組合模式:用樹形結構處理對象之間的復雜關系

文章目錄一、引言二、模式原理分析三、代碼示例四、核心要點五、使用場景分析六、案例七、為何使用組合模式?八、優缺點剖析九、最佳實踐建議十、總結一、引言 “組合模式”(Composite Pattern)常被誤解為“組合關系”。前者專注于將對象組合…

STM32U575低功耗調試

開啟了MSIK時鐘導致功耗變高在stop2模式下, 整體板子25.41uA; 如果在standby模式, 整體板子5uA;如果在stop2模式, 并且把LPTIM3,4選擇的時鐘是MSIK, 整體功耗53.59uA2.stanby模式板子整體5uA調試的時候, 可以讓板子進入standby模式, 如果電流很小, 可以證明板子沒有漏電(圖畫錯…

基于ARM+FPGA多通道超聲信號采集與傳輸系統設計

針對超聲信號采集系統在多通道同步采集和高速數據傳輸所面臨的挑戰,設計并實現了一種 基于 FPGA 的8通道超聲信號同步采集與傳輸系統。系統以FPGA 作為主控芯片,ADI公司的 AD9279作 為8通道超聲信號同步采集的模擬前端和模數轉換芯片,通過 DDR3SDRAM 及 USB3.0實現數據緩存和 高…

計算機網絡:為什么IPv6沒有選擇使用點分十進制

IPv6沒有采用點分十進制(如IPv4的192.168.1.1),核心原因是其地址長度、設計目標與表示需求和IPv4存在本質差異,而冒號分十六進制(如2001:0db8:85a3:0000:0000:8a2e:0370:7334)是更適配其特性的選擇。具體可從以下幾個角度分析: 一、地址長度差異:點分十進制無法適配12…

HBM Basic(VCU128)

目錄 1. 簡介 1.1 硬件平臺 1.2 圖片 2. 硬件信息 2.1 Vivado Basic 2.1.1 GPIO 2.1.2 Clock Sources 2.1.3 Reset 2.1.4 Flash 2.1.5 燒寫報錯 2.2 PCIe simple 2.2.1 Block Design 2.2.2 XDMA 2.3 PCIe HBM 2.3.1 Block Design 2.3.2 HBM IP 3. HBM 知識 3…

Mybatis的應用及部分特性

初識MybatisMybatis的概念MyBatis 是一個Java 持久層框架,核心作用是簡化數據庫操作,把 SQL 和 Java 代碼解耦。ORM框架MyBatis是一個ORM 框架所謂ORM 框架,就是把數據庫里的表、字段、關系,映射成編程語言里的類、屬性、對象引用…

使用Jeecg低代碼平臺實現計劃管控系統建設方案--2平臺學習

1.前后端列表練習 前端頁面下的views下的system下的基本都是系統管理的東西。 在system下新建一個目錄edu。 index基本就是列表頁面。 modal就是新增編輯彈窗。 api就是接口。 data就是列配置。 一些組件的使用可以參考官方文檔,help.jeecg.com。 在創建一個…

調試|谷歌瀏覽器調試長連接|調試SSE和websocket

長連接需求不常有,控制臺調試的細節容易忘,在這截圖備忘。本文會記錄SSE、websocket連接、普通接口 在谷歌瀏覽器控制臺的對比 文章目錄SSE(Server-Sent Events)觀察對象:百度翻譯觀察請求頭和響應頭觀察EventStream觀…

VS2019 Qt5.14.2 OpenCV4.4.0 全流程安裝及開發環境搭建與配置(工業相機環境配置)

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄前言Visual Studio 2019 安裝步驟項目配置驗證Qt 5.14.2 安裝步驟項目配置驗證Visual Studio Qt 拓展(確定項目后)OpenCV 4.4.0 安裝步驟項目…

正確配置jdk環境但IntelliJ IDEA無法啟動

現象:今天突然發現開發工具雙擊沒有正常啟動,之前是用著的。問題排查:是否是因為jdk環境變量導致的,之前安裝過安卓的開發環境也修改過環境變量。步驟一:cmd輸入java -version 或javac,如圖沒有反應步驟二&…

ubuntu-server安裝

1.下載系統鏡像: 阿里云鏡像站下載服務器鏡像 https://mirrors.aliyun.com/ubuntu-releases/24.04/ubuntu-24.04.2-live-server-amd64.iso 1.創建新的虛擬機 按住鍵盤ctrl n 打開虛擬機創建界面 用光標選擇對應語言沒有中文哈 然后回車確認 設置計算機名、用戶名…

Docker Compose管理新范式:可視化控制臺結合cpolar提升容器編排效率?

文章目錄前言1. 安裝Docker2. 檢查本地docker環境3. 安裝cpolar內網穿透4. 使用固定二級子域名地址遠程訪問前言 在容器化應用部署領域,Docker Compose UI為開發者提供了一種更直觀的解決方案。這款工具以Web界面形式封裝了Docker Compose的核心功能,在…

BSW總結

1.FBL:【有道云筆記】BSW_FBL https://share.note.youdao.com/s/NaeZWTuR 2.NM: 【有道云筆記】BSW_NM https://share.note.youdao.com/s/MKxlIpUS