五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動(dòng)態(tài)

Shell編程條件測(cè)試的實(shí)現(xiàn)

發(fā)布日期:2022-02-03 08:47 | 文章來源:站長(zhǎng)之家

什么是Shell

Shell是一個(gè)命令解釋器,它會(huì)解釋并執(zhí)行命令行提示符下輸入的命令。除此之外,Shell還有另一個(gè)功能,如果要執(zhí)行多條命令,它可以將這組命令存放在一個(gè)文件中,然后可以像執(zhí)行Linux系統(tǒng)提供的其他程序一樣執(zhí)行這個(gè)文件,這個(gè)命令文件就叫做Shell程序或者Shell腳本。當(dāng)運(yùn)行這個(gè)文件時(shí),它會(huì)像在命令行輸入這些命令一樣順序地執(zhí)行它們。

Shell腳本支持變量、命令行參數(shù)、交互式輸入、函數(shù)模塊、各種控制語句等高級(jí)編程語言的特性,如if、case、while和for等。利用Shell程序設(shè)計(jì)語言可以編寫出功能非常復(fù)雜的腳本程序,把大量的任務(wù)自動(dòng)化,尤其是那些需要輸入大量命令而在執(zhí)行過程中不太需要與用戶進(jìn)行干預(yù)的系統(tǒng)管理任務(wù)。

為了讓Shell能讀取并且執(zhí)行Shell程序,Shell腳本的文件權(quán)限必須被設(shè)置為可讀和可執(zhí)行。為了讓Shell可以找到程序,可以選擇輸入完全路徑名,或者將這個(gè)腳本的路徑放在PATH環(huán)境變量指定的路徑列表中。Shell腳本不是復(fù)雜的程序,它是由上往下逐行解釋執(zhí)行的。腳本的第一行總是以“#!<Shell解釋器文件路徑>”開始,用來指定該腳本是使用那種Shell進(jìn)行解釋執(zhí)行。

編寫Shell腳本

1)使用VI或者其他任意的文本編輯工具創(chuàng)建一個(gè)名為HelloWorld.sh的文件,并在其中加入以下內(nèi)容:

[root@localhost ~]# vi HelloWorld.sh
#!/bin/bash
#The first Shell script
echo "Hello World!"

2)為HelloWorld.sh文件添加執(zhí)行權(quán)限;

[root@localhost ~]# chmod +x HelloWorld.sh

3)運(yùn)行HelloWorld.sh腳本,查看運(yùn)行結(jié)果;

[root@localhost ~]# ./HelloWorld.sh
Hello World!

條件測(cè)試 | 數(shù)值測(cè)試

編寫Shell腳本時(shí),有時(shí)要先測(cè)試字符串是否一致、數(shù)字是否相等或者檢查文件狀態(tài),基于這些測(cè)試的結(jié)果再做下一步的操作。Shell腳本的條件測(cè)試可以用于測(cè)試字符串、文件狀態(tài)和數(shù)字。

測(cè)試完成后可以通過“$?”獲取測(cè)試的結(jié)果,其中0為正確,1為錯(cuò)誤。

數(shù)值測(cè)試用于對(duì)兩個(gè)數(shù)值進(jìn)行比較并得出判斷結(jié)果,包括:等于、不等于、大于、大于等于、小于、小于等于。

數(shù)值判斷的格式:[ 數(shù)值1 關(guān)系運(yùn)算符 數(shù)值2 ]

方括號(hào)與條件之間必須要有空格。

數(shù)值測(cè)試的關(guān)系運(yùn)算符
關(guān)系運(yùn)算符 說明
-eq? 兩個(gè)數(shù)值相等
-ne 兩個(gè)數(shù)值不相等
-gt 第一個(gè)數(shù)大于第二個(gè)數(shù)
-lt 第一個(gè)數(shù)小于第二個(gè)數(shù)
-ge 第一個(gè)數(shù)大于等于第二個(gè)數(shù)
-le 第一個(gè)數(shù)小于等于第二個(gè)數(shù)

測(cè)試兩個(gè)數(shù)值是否相等;

[root@localhost ~]# [ 1024 -eq 1024 ]  //測(cè)試1024是否等于1024
[root@localhost ~]# echo $?
0 //兩個(gè)數(shù)值相等
修改第一個(gè)數(shù)值為1124后再次進(jìn)行測(cè)試。
[root@localhost ~]# [ 1124 -eq 1024 ]
[root@localhost ~]# echo $?
1 //兩個(gè)數(shù)值不相等
[root@localhost ~]# number1=500  //number1為500
[root@localhost ~]# number2=254  //number2為254
[root@localhost ~]# [ $number1 -gt $number2 ]
[root@localhost ~]# echo $?
0 //number1大于number2
[root@localhost ~]#

條件測(cè)試 | 字符串測(cè)試

字符串測(cè)試可以對(duì)兩個(gè)字符串的值進(jìn)行比較,也可以測(cè)試單個(gè)字符串的值是否為空或者非空。

字符串測(cè)試的格式:[ 關(guān)系運(yùn)算符 字符串 ]或者[ 字符串1 關(guān)系運(yùn)算符 字符串2 ]

字符串測(cè)試的關(guān)系運(yùn)算符
關(guān)系運(yùn)算符 說明
= 兩個(gè)字符串相等
!= 兩個(gè)字符串不相等
-z 字符串為空
-n

字符串不為空

要測(cè)試兩個(gè)字符串是否相等
[root@localhost ~]# [ "abc" = "abc" ]
[root@localhost ~]# echo $?
0//兩個(gè)字符串相等
把第一個(gè)字符串更改為bac后進(jìn)行測(cè)試
[root@localhost ~]# [ "bac" = "abc" ]
[root@localhost ~]# echo $?
1//兩個(gè)字符串不相等
如果把運(yùn)算符改為“!=”
[root@localhost ~]# [ "bac" != "abc" ]
[root@localhost ~]# echo $?
0
判斷環(huán)境變量是否為空或者非空
[root@localhost ~]# [ -z $python1 ]
[root@localhost ~]# echo $?
0
[root@localhost ~]# [ -n $python1 ]
[root@localhost ~]# echo $?
0//python1變量為空
[root@localhost ~]# python1="test" //對(duì)python1變量進(jìn)行賦值
[root@localhost ~]# [ -z $python1 ]
[root@localhost ~]# echo $?
1//python1變量不為空
[root@localhost ~]#

條件測(cè)試 | 文件狀態(tài)測(cè)試

Linux的Shell腳本支持對(duì)文件狀態(tài)的檢測(cè),包括檢測(cè)文件的類型、文件的權(quán)限和文件的長(zhǎng)度等;

文件狀態(tài)測(cè)試的格式:[ 關(guān)系運(yùn)算符 字符串 ]

文件狀態(tài)測(cè)試的關(guān)系運(yùn)算符
關(guān)系運(yùn)算符 說明
-d 目錄
-f 一般文件
-L 鏈接文件
-r

可讀

-w 可寫
-x 可執(zhí)行
-u 設(shè)置了suid
-s 文件長(zhǎng)度大于0、非空

[root@localhost 20190105]# ll
總用量 4
-rwxr-xr-x. 1 root root 56 6月4 07:55 HelloWorld.sh
[root@localhost 20190105]# [ -r HelloWorld.sh ]
[root@localhost 20190105]# echo $?
0 //HelloWorld.sh 文件可讀
[root@localhost 20190105]# [ -w HelloWorld.sh ]
[root@localhost 20190105]# echo $?
0 //HelloWorld.sh 文件可寫
[root@localhost 20190105]# [ -x HelloWorld.sh ]
[root@localhost 20190105]# echo $?
0 //HelloWorld.sh 文件可執(zhí)行
[root@localhost 20190105]#

條件測(cè)試的邏輯操作符

邏輯操作符分以下3種:

  • -a:邏輯與,只有當(dāng)操作符兩邊的條件均為真時(shí),結(jié)果為真,否則為假。
  • -o:邏輯或,操作符兩邊的條件只要有一個(gè)為真,結(jié)果為真,只有當(dāng)兩邊所有條件為假時(shí),結(jié)果為假。
  • !:邏輯否,條件為假,結(jié)果為真。
如果要測(cè)試兩個(gè)文件的狀態(tài)
[root@localhost 20190105]# ll test1 test2
-rw-rw-r--. 1 root root 0 6月4 09:25 test1
-rw-rw-r--. 1 root root 0 6月4 09:25 test2
[root@localhost 20190105]# [ -r test1 -a -r test2 ] //測(cè)試文件 test1 和 test2 是否都可讀
[root@localhost 20190105]# echo $?
0
[root@localhost 20190105]# [ -x test1 -o -x test2 ] //測(cè)試文件 test1 和 test2 是否至少有一個(gè)可執(zhí)行
[root@localhost 20190105]# echo $?
1
如果要測(cè)試兩個(gè)數(shù)值變量
[root@localhost 20190105]# number1=10
[root@localhost 20190105]# number2=20
[root@localhost 20190105]# [ $number1 -eq 10 -a $number2 -gt 20 ] //測(cè)試是否number1 大于10 且 number2 大于20
[root@localhost 20190105]# echo $?
1
如果要測(cè)試文件test1 是否為不可讀
[root@localhost 20190105]# ls -l test1
-rw-rw-r--. 1 root root 0 6月4 09:25 test1
[root@localhost 20190105]# [ ! -r test1 ] //測(cè)試文件test1 是否為不可讀
[root@localhost 20190105]# echo $?
1
[root@localhost 20190105]#

到此這篇關(guān)于Shell編程條件測(cè)試的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Shell 條件測(cè)試 內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

香港穩(wěn)定服務(wù)器

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對(duì)1客戶咨詢顧問

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部