溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

linux shell常用的腳本語句語法

發(fā)布時間:2021-09-09 18:14:43 來源:億速云 閱讀:109 作者:chen 欄目:系統(tǒng)運(yùn)維

這篇文章主要介紹“l(fā)inux shell常用的腳本語句語法”,在日常操作中,相信很多人在linux shell常用的腳本語句語法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”linux shell常用的腳本語句語法”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

1shell中的if語句語法
我發(fā)現(xiàn)有時候等于是用eq表示,有時候用=標(biāo)準(zhǔn),不明白
==============
eq數(shù)值
=字符串?。?!
==============
可以看看man test
==============
流程控制

if 表達(dá)式 如果條件為真則執(zhí)行then后面的部分:
if ....
then
....
elif ....
then
....
else
....
fi
大多數(shù)情況下,可以使用測試命令來對條件進(jìn)行測試。比如可以比較字符串、判斷文件是否存在及是否可讀等等…
通常用 [ ] 來表示條件測試。注意這里的空格很重要。要確保方括號的空格。
[ -f somefile ] :判斷是否是一個文件
[ -x /bin/ls ] :判斷/bin/ls是否存在并有可執(zhí)行權(quán)限
[ -n $var ] :判斷$var變量是否有值
[ $a = $b ] :判斷$a和$b是否相等
==============
今天看到一本書,上面說if語句中如果用=,<,>等比較符號是,應(yīng)該寫在括號中,如果是用-eq,-lt等就應(yīng)該寫在[ ]中,是這樣嘛??
==============
這應(yīng)該是針對 ksh/bash 的,因?yàn)樗鼈兌紝υ瓉淼膕h進(jìn)行了擴(kuò)展,可以直接使用
< > = 來進(jìn)行數(shù)值判斷,但是就象你提到的,要寫在 (( )) 中。
==============
if 之后的判斷是test語法,而
if [表達(dá)式] 和
if test 表達(dá)式
是等價的
++++++++++++++++++++++++++++++++++++
test命令用法:
1)判斷表達(dá)式
if test (表達(dá)式為真)
if test !表達(dá)式為假
test 表達(dá)式1 &ndash;a 表達(dá)式2 兩個表達(dá)式都為真
test 表達(dá)式1 &ndash;o 表達(dá)式2 兩個表達(dá)式有一個為真

2)判斷字符串
test &ndash;n 字符串 字符串的長度非零
test &ndash;z 字符串 字符串的長度為零
test 字符串1=字符串2 字符串相等
test 字符串1!=字符串2 字符串不等

3)判斷整數(shù)
test 整數(shù)1 &ndash;eq 整數(shù)2 整數(shù)相等
test 整數(shù)1 &ndash;ge 整數(shù)2 整數(shù)1大于等于整數(shù)2
test 整數(shù)1 &ndash;gt 整數(shù)2 整數(shù)1大于整數(shù)2
test 整數(shù)1 &ndash;le 整數(shù)2 整數(shù)1小于等于整數(shù)2
test 整數(shù)1 &ndash;lt 整數(shù)2 整數(shù)1小于整數(shù)2
test 整數(shù)1 &ndash;ne 整數(shù)2 整數(shù)1不等于整數(shù)2

4)判斷文件
test File1 &ndash;ef File2 兩個文件具有同樣的設(shè)備號和i結(jié)點(diǎn)號
test File1 &ndash;nt File2 文件1比文件2 新
test File1 &ndash;ot File2 文件1比文件2 舊
test &ndash;b File 文件存在并且是塊設(shè)備文件
test &ndash;c File 文件存在并且是字符設(shè)備文件
test &ndash;d File 文件存在并且是目錄
test &ndash;e File 文件存在
test &ndash;f File 文件存在并且是正規(guī)文件
test &ndash;g File 文件存在并且是設(shè)置了組ID
test &ndash;G File 文件存在并且屬于有效組ID
test &ndash;h File 文件存在并且是一個符號鏈接(同-L)
test &ndash;k File 文件存在并且設(shè)置了sticky位
test &ndash;b File 文件存在并且是塊設(shè)備文件
test &ndash;L File 文件存在并且是一個符號鏈接(同-h)
test &ndash;o File 文件存在并且屬于有效用戶ID
test &ndash;p File 文件存在并且是一個命名管道
test &ndash;r File 文件存在并且可讀
test &ndash;s File 文件存在并且是一個套接字
test &ndash;t FD 文件描述符是在一個終端打開的轉(zhuǎn)載請注明文章來

命令行內(nèi)循環(huán):
a=0 && while [ $a -lt 10 ] ; do echo $a && a=`expr $a + 1` ; done

到此,關(guān)于“l(fā)inux shell常用的腳本語句語法”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI