Ⅰ 在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 shell編程 if判斷語句的判定條件
#!/bin/bash
a=$(grep '>' file | wc -l )
if [ $a = 1 ];then
要執行的語句
fi
Ⅲ 關於linux if多個判斷問題
1 = 1 -a 2 = 2 -a $i = 2
表達式中,=也要和數值空格分開,不然會把 1=1這種當成一個字元串處理
Ⅳ linux if判斷是不是數字
## 方法1
a=1234;echo "$a"|[ -n "`sed -n '/^[0-9][0-9]*$/p'`" ] && echo string a is numbers
第一個-n是shell的測試標志,對後面的串"`sed -n '/^[0-9][0-9]*$/p'`" 進行測試,如果非空,則結果為真。
sed默認會顯示所有輸入行信息的,sed 的「-n」選項是讓sed不要顯示,而只顯示我們所需要的內容:即後面的表達式所匹配的行,這是通過表達式中加入「p」命令來實現的。
/^[0-9][0-9]*$/他的含義是匹配至少由一位數字構成的行
## 方法2, 可以,不過不是bash實現的,是使用了grep的正則
#if grep '^[[:digit:]]*$' <<< "$1";then
# echo "$1 is number."
#else
# echo 'no.'
#fi
## 方法3
#if [ "$1" -gt 0 ] 2>/dev/null ;then
# echo "$1 is number."
#else
# echo 'no.'
#fi
## 方法4,case
#case "$1" in
# [1-9][0-9]*)
# echo "$1 is number."
# ;;
# *)
# ;;
#esac
## 方法5,awk
#echo $1| awk '{print($0~/^[-]?([0-9])+[.]?([0-9])+$/)?"number":"string"}'
## 方法5,awk
#if [ -n "$(echo $1| sed -n "/^[0-9]\+$/p")" ];then
# echo "$1 is number."
#else
# echo 'no.'
#fi
## 方法6,expr
expr $1 "+" 10 &> /dev/null
if [ $? -eq 0 ];then
echo "$1 is number"
else
echo "$1 not number"
fi
Ⅳ Linux shell條件判斷if中的-a到-z的意思
[ ARG1 OP ARG2 ] 「OP」 is one of -eq, -ne, -lt, -le, -gt or -ge. These arithmetic binary operators return true if 「ARG1」 is equal to, not equal to, less than, less than or equal to, greater than, or greater than or equal to 「ARG2」, respectively. 「ARG1」 and 「ARG2」 are integers.
Ⅵ 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 shell腳本10 字元串相關的if判斷
字元串比較包括
注意 :這里的符號要 轉義 ,否則變成了重定向了。
運行結果:
注意 :上面的 等號左右兩側 , 中括弧內側 一定要有空格
運行結果:
以上的例子,說明 小寫字母排在字典的後面 (類似於ascii的大小)。
sort 可以對字元串排序,sort 命令會把小寫字母放在前面 。
運行結果:
注意上面的 中括弧內側 一定要有空格。
注意 :有時候想在字元串比較的時候使用 正則表達式 ,可以使用 雙方括弧 ,如:
運行如下:
注意:上面的 雙等號左右兩側,中括弧內側 一定要有空格
Ⅷ 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 [ -f $home/$1]的」含義是什麼
含義:
1、if 條件判斷關鍵字。
2、[ ] 語法要求。
3、-f 文件比較運算符,如果 filename為常規文件,則為真 。
4、$home 取變數的值,如果.sh文件裡面沒有該就是則會取用戶系統變數!你可以在終端中執行一下 echo $home 看看是什麼路徑。
5、$1 取輸入的第一個參數.例: sh xxx.sh 111 那麼此時 $1的值就是 111。
Ⅹ linux裡面if [ 「result」 != 「 「 ]判斷作用是什麼
題主你好,
先說作用再分析.
作用: 判斷 != 兩邊的字元串是否不相等, 即判斷"result"還" "是否不相等.
但是光說作用了,其實對於實際使用還是沒有太大幫助.
-----
分析:
截圖中紅框框選的就是本題中用到的!=,用來判斷兩個字元串是否不相等.
=====
希望可以幫到題主, 歡迎追問.