linuxif判斷
❶ 每天三分鍾搞定linux shell腳本10 字元串相關的if判斷
字元串比較包括
注意 :這里的符號要 轉義 ,否則變成了重定向了。
運行結果:
注意 :上面的 等號左右兩側 , 中括弧內側 一定要有空格
運行結果:
以上的例子,說明 小寫字母排在字典的後面 (類似於ascii的大小)。
sort 可以對字元串排序,sort 命令會把小寫字母放在前面 。
運行結果:
注意上面的 中括弧內側 一定要有空格。
注意 :有時候想在字元串比較的時候使用 正則表達式 ,可以使用 雙方括弧 ,如:
運行如下:
注意:上面的 雙等號左右兩側,中括弧內側 一定要有空格
❷ linux 每個if都要搭配一個fi嗎
每個if語句都要用fi結束,而且是每一個if都要對應一個fi。
整個if語句用fi閉合起來才算完整,書寫時if和fi要垂直對齊以方便查看。
格式舉例:
if condition
then
command1
command2
fi
condition是判斷條件,如果 condition 成立(返回「真」),那麼 then 後邊的語句將會被執行;如果 condition 不成立(返回「假」),那麼不會執行任何語句。最後必須以fi來閉合,fi 就是 if 倒過來拼寫,即使有多條語句也不需要用{ }包圍起來。
(2)linuxif判斷擴展閱讀
shell if多條件的格式用法介紹
shell 支持任意數目的分支,當分支比較多時,可以使用 if elif else 結構,它的格式為:
if condition1
then
statement1
elif condition2
then
statement2
elif condition3
then
statement3
else
statementn
fi
注意,if 和 elif 後邊都得跟著 then。整條語句的執行邏輯為:
如果 condition1 成立,那麼就執行 if 後邊的 statement1;如果 condition1 不成立,那麼繼續執行 elif,判斷 condition2。
如果 condition2 成立,那麼就執行 statement2;如果 condition2 不成立,那麼繼續執行後邊的 elif,判斷 condition3。
如果 condition3 成立,那麼就執行 statement3;如果 condition3 不成立,那麼繼續執行後邊的 elif。
如果所有的 if 和 elif 判斷都不成立,就進入最後的 else,執行 statementn。
❸ linux裡面if [ 「result」 != 「 「 ]判斷作用是什麼
題主你好,
先說作用再分析.
作用: 判斷 != 兩邊的字元串是否不相等, 即判斷"result"還" "是否不相等.
但是光說作用了,其實對於實際使用還是沒有太大幫助.
-----
分析:
截圖中紅框框選的就是本題中用到的!=,用來判斷兩個字元串是否不相等.
=====
希望可以幫到題主, 歡迎追問.
❹ linux shell if語句中~是什麼意思
if為判斷語句,判斷某個東西是否達到設定的條件。
1,格式為:
if語句格式
if條件
then
Command
else
Command
fi別忘了這個結尾
2,if的三種條件表達式:
ifcommandthen
if函數then命令執行成功,等於返回0(比如grep,找到匹配)執行失敗,返回非0(grep,沒找到匹配)
if[expression_r_r_r]then表達式結果為真,則返回0,if把0值引向then
iftestexpression_r_r_rthen表達式結果為假,則返回非0,if把非0值引向then
❺ linux if判斷是不是數字
if echo $n|grep "^[0-9][0-9]*$";then
echo $n是數字
fi
❻ Linux裡面if -s命令作用是什麼
字元串判斷
str1 = str2當兩個串有相同內容、長度時為真
str1 != str2 當串str1和str2不等時為真
-n str1 當串的長度大於0時為真(串非空)
-z str1 當串的長度為0時為真(空串)
str1 當串str1為非空時為真
2、數字的判斷
int1 -eq int2兩數相等為真
int1 -ne int2兩數不等為真
int1 -gt int2int1大於int2為真
int1 -ge int2int1大於等於int2為真
int1 -lt int2int1小於int2為真
int1 -le int2int1小於等於int2為真
3 文件的判斷
-r file用戶可讀為真
-w file用戶可寫為真
-x file用戶可執行為真
-f file文件為正規文件為真
-d file文件為目錄為真
-c file文件為字元特殊文件為真
-b file文件為塊特殊文件為真
-s file文件大小非0時為真
-t file當文件描述符(默認為1)指定的設備為終端時為真
3、復雜邏輯判斷
-a 與
-o或
! 非
EXAMPLE:
[ -a FILE ] 如果 FILE 存在則為真。
[ -b FILE ] 如果 FILE 存在且是一個塊特殊文件則為真。
[ -c FILE ] 如果 FILE 存在且是一個字特殊文件則為真。
[ -d FILE ] 如果 FILE 存在且是一個目錄則為真。
[ -e FILE ] 如果 FILE 存在則為真。
[ -f FILE ] 如果 FILE 存在且是一個普通文件則為真。
[ -g FILE ] 如果 FILE 存在且已經設置了SGID則為真。
[ -h FILE ] 如果 FILE 存在且是一個符號連接則為真。
[ -k FILE ] 如果 FILE 存在且已經設置了粘制位則為真。
[ -p FILE ] 如果 FILE 存在且是一個名字管道(F如果O)則為真。
[ -r FILE ] 如果 FILE 存在且是可讀的則為真。
[ -s FILE ] 如果 FILE 存在且大小不為0則為真。
[ -t FD ] 如果文件描述符 FD 打開且指向一個終端則為真。
[ -u FILE ] 如果 FILE 存在且設置了SUID (set user ID)則為真。
[ -w FILE ] 如果 FILE 如果 FILE 存在且是可寫的則為真。
[ -x FILE ] 如果 FILE 存在且是可執行的則為真。
[ -O FILE ] 如果 FILE 存在且屬有效用戶ID則為真。
[ -G FILE ] 如果 FILE 存在且屬有效用戶組則為真。
[ -L FILE ] 如果 FILE 存在且是一個符號連接則為真。
[ -N FILE ] 如果 FILE 存在 and has been mod如果ied since it was last read則為真。
[ -S FILE ] 如果 FILE 存在且是一個套接字則為真。
[ FILE1 -nt FILE2 ] 如果 FILE1 has beewww.028x.cn#hanged more recently than FILE2, or 如果 FILE1 exists and FILE2 does not則為真。
[ FILE1 -ot FILE2 ] 如果 FILE1 比 FILE2 要老, 或者 FILE2 存在且 FILE1 不存在則為真。
[ FILE1 -ef FILE2 ] 如果 FILE1 和 FILE2 指向相同的設備和節點號則為真。
[ -o OPTIONNAME ] 如果 shell選項 「OPTIONNAME」 開啟則為真。
[ -z STRING ] 「STRING」 的長度為零則為真。
[ -n STRING ] or [ STRING ] 「STRING」 的長度為非零 non-zero則為真。
[ STRING1 == STRING2 ] 如果2個字元串相同。 「=」 may be used instead of 「==」 for strict POSIX compliance則為真。
[ STRING1 != STRING2 ] 如果字元串不相等則為真。
❼ linux中「if [ -f $home/$1]的」含義是什麼
含義:
1、if 條件判斷關鍵字。
2、[ ] 語法要求。
3、-f 文件比較運算符,如果 filename為常規文件,則為真 。
4、$home 取變數的值,如果.sh文件裡面沒有該就是則會取用戶系統變數!你可以在終端中執行一下 echo $home 看看是什麼路徑。
5、$1 取輸入的第一個參數.例: sh xxx.sh 111 那麼此時 $1的值就是 111。
❽ Linux shell編程,這個命令if [ "$pid" ]; then...。什麼時候if條件判斷為true和false呢
只有當pid為空時,if條件才會為false。如果pid是程序獲取的進程號,那麼就是當進程存在時(pid不為空)為true,當進程不存在時(pid為空)為false。
1、pid=""
if條件為false,如下面輸出2:
pid=""
if["$pid"]
then
echo"1"
else
echo"2"
fi
2、pid=任何非空值
if條件為true,如下面輸出1:
pid="0"
if["$pid"]
then
echo"1"
else
echo"2"
fi
希望能夠幫助到你,你的好評是我前進的動力,謝謝!
❾ 關於linux if多個判斷問題
1 = 1 -a 2 = 2 -a $i = 2
表達式中,=也要和數值空格分開,不然會把 1=1這種當成一個字元串處理