字元串判斷
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函數怎麼用啊
題主你好,
我這邊把你的代碼敲了一遍, 沒有出現你說的情況.
測試所用代碼:
寫在最後: 題主把你那邊所用的系統以及代碼運行截圖發過來,我看一下.
另外關於shell語法這東西,熟悉了也就好了,你之所以會生氣是因為剛接觸shell,怎麼調都不和你心意,後期基本的語法都玩熟了,也就沒這種想法了。c語言其實也一樣,如果沒人告訴你語法,而是你自己去猜測,去試,碰一鼻子灰的時候也是現在寫shell時的心態.
另外當你熟悉了一門語言後,再去接觸其它語言,尤其是語法差異較大的語言,就會覺得很別扭,都是先入為主的思想弄的,反過來想,如果你一開始接觸的是shell,可能現在就會覺得c很別扭。你現在可能覺得不是這樣的,那是因為你現在會c語言.
所以我想說的是不管是啥語言,不管設計樣,既然要用它,就靜下心來,盤它就對了:)
=====
希望可以幫到題主, 歡迎追問.
⑶ linux裡面if [ 「result」 != 「 「 ]判斷作用是什麼
題主你好,
先說作用再分析.
作用: 判斷 != 兩邊的字元串是否不相等, 即判斷"result"還" "是否不相等.
但是光說作用了,其實對於實際使用還是沒有太大幫助.
-----
分析:
截圖中紅框框選的就是本題中用到的!=,用來判斷兩個字元串是否不相等.
=====
希望可以幫到題主, 歡迎追問.
⑷ 在linux中,if [ -f $home/$1]的含義
#[-f$home/$1]表示的是判斷$home/$1是不是文件,並且存在$1表示的是你執行腳本的第一個參數,下面有詳細的例子你可以練習一下!
[root@localhosttest]#pwd
/root/test
[root@localhosttest]#ls
eoopenone.sh
[root@localhosttest]#catone.sh
#!/bin/bash
#這里我假設一下$home和$1這兩個變數的值
home=root
if[-f/$home/$1];then
echo"它是文件而且存在這樣的一個文件";
else
echo"這不是一個文件,或者它不在在"
fi
[root@localhosttest]#shone.shdemo.php
它是文件而且存在這樣的一個文件
[root@localhosttest]#cd../
[root@localhost~]#pwd
/root
[root@localhost~]#ls
anaconda-ks.cfgdemo2.phpdemo.phphxb.phpinstall.loginstall.log.syslogone.shPHPExcel_1.8.0_doc.ziptest
⑸ 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中if-else條件判斷語句
在shell中的條件判斷語句格式為:
其中elif和else不是必須的,如果只需判斷一次,那麼if...fi即可。值得注意的是if後面中括弧[]中的語句[的後面和]的前面必須要有空格。
下面通過判斷大小和文件是否存在看一下判斷語句的用法:
-gt 大於 (greater than);
-lt 小於(less than);
-eq 等於(equal);
-ne 不等於(not equal);
-ge 大於等於(greater equal);
-le 小於等於(less equal)。