當前位置:首頁 » 操作系統 » linuxif不等於

linuxif不等於

發布時間: 2022-02-25 06:40:31

1. shell編程中的if判斷語句,為什麼總是輸出「str1 不等於 str2」

字元串的比較問題,
if [ str1 = str2 ]; then
改為:
if [ "$str1" = "$str2" ]; then

變數取值在前面加$,字元串記得加雙引號。

2. shell if函數中幾種條件判斷的區別

1、整數比較:
[plain] view plain
-eq 等於,如:if [ "$a" -eq "$b" ] 或 if [ $a -eq $b ]
-ne 不等於,如:if [ "$a" -ne "$b" ]
-gt 大於,如:if [ "$a" -gt "$b" ]
-ge 大於等於,如:if [ "$a" -ge "$b" ]
-lt 小於,如:if [ "$a" -lt "$b" ]
-le 小於等於,如:if [ "$a" -le "$b" ]
== 等於,如:if if (("$a" == "$b"))
< 小於(需要雙括弧),如:(("$a" < "$b"))
<= 小於等於(需要雙括弧),如:(("$a" <= "$b"))
> 大於(需要雙括弧),如:(("$a" > "$b"))
>= 大於等於(需要雙括弧),如:(("$a" >= "$b"))
特別說明的是(())字元和括弧之間不需要留空格,但[[ ]],[]要求比較嚴格,需要留空格。
2、字元串比較,上面的-eq,-nq等公式只適用於數字比較,不適用於字元比較

[plain] view plain
= 等於,如:if [ "$a" = "$b" ]
== 等於,如:if [ "$a" == "$b" ],與=等價

[[ $a == z* ]] # 如果$a以"z"開頭(模式匹配)那麼將為true
[[ $a == "z*" ]] # 如果$a等於z*(字元匹配),那麼結果為true
[ $a == z* ] # File globbing 和word splitting將會發生
[ "$a" == "z*" ] # 如果$a等於z*(字元匹配),那麼結果為true

3、括弧之間的區別:

[[ ]],[]對括弧內變數要求嚴格且且敏感,但(())則相對寬松一些

[plain] view plain
1、if [[ $a == $b ]] 和 if [[ $a == $b ]] 等價
但if [[ $a == $b ]] 和if [[ a == b ]] 不等價
2、if (($a == $b)) 和 if (($a = $b))等價
if (($a == $b)) 和 if ((a == b)) 等價

4、多條件判斷:

&&和||適用於[[ ]]和(),-a和-o適用於[]中

舉例如下:

[plain] view plain
if ((i == 1)) 和 if [ "$i" == 1 ]等價

if [[ "$i" = 1 && "$j" = 2 ]] 和 if ((i = 1)) || ((j = 2))

5、其它說明:

!= 不等於,如:if [ "$a" != "$b" ]

這個操作符將在[[]]結構中使用模式匹配.
< 小於,在ASCII字母順序下.如:
if [[ "$a" < "$b" ]]
if [ "$a" \< "$b" ]
注意:在[]結構中"<"需要被轉義.
> 大於,在ASCII字母順序下.如:
if [[ "$a" > "$b" ]]
if [ "$a" \> "$b" ]

3. 關於linux if多個判斷問題

1 = 1 -a 2 = 2 -a $i = 2
表達式中,=也要和數值空格分開,不然會把 1=1這種當成一個字元串處理

4. linux shell 指令 諸如-d, -f, -e之類的判斷表達式

文件比較運算符-e filename

  • 如果 filename存在,則為真 [ -e /var/log/syslog ]-d filename

  • 如果 filename為目錄,則為真 [ -d /tmp/mydir ]-f filename

  • 如果 filename為常規文件,則為真 [ -f /usr/bin/grep ]-L filename

  • 如果 filename為符號鏈接,則為真 [ -L /usr/bin/grep ]-r filename

  • 如果 filename可讀,則為真 [ -r /var/log/syslog ]-w filename

  • 如果 filename可寫,則為真 [ -w /var/mytmp.txt ]-x filename

  • 如果 filename可執行,則為真 [ -L /usr/bin/grep ]filename1-nt filename2

  • 如果 filename1比 filename2新,則為真 [ /tmp/install/etc/services -nt /etc/services ]filename1-ot filename2

  • 如果 filename1比 filename2舊,則為真 [ /boot/bzImage -ot arch/i386

/boot/bzImage ]字元串比較運算符 (請注意引號的使用,這是防止空格擾亂代碼的好方法)

  • -z string 如果 string長度為零,則為真 [ -z "$myvar" ]-n string 如果 string長度非零,則為真 [ -n "$myvar" ]

  • string1= string2 如果 string1與 string2相同,則為真 [ "$myvar" = "one two three"]

  • string1!= string2 如果 string1與 string2不同,則為真 [ "$myvar" != "one two three" ]

算術比較運算符num1-eq num2 等於 [ 3 -eq $mynum ]

  • num1-ne num2 不等於 [ 3 -ne $mynum ]num1-lt num2 小於 [ 3 -lt $mynum ]

  • num1-le num2 小於或等於 [ 3 -le $mynum ]num1-gt num2 大於 [ 3 -gt $mynum ]

  • num1-ge num2 大於或等於 [ 3 -ge $mynum ]

拓展資料:

Linux操作系統

是基於UNIX操作系統發展而來的一種克隆系統,它誕生於1991 年的 [Linux桌面] 10 月5 日(這是第一次正式向外公布的時間)。以後藉助於Internet網路,並通過全世界各地計算機愛好者的共同努力,已成為今天世界上使用最多的一種UNIX 類操作系統,並且使用人數還在迅猛增長。

5. linux中大於等於

eq 等於 if [ "$a" -eq "$b" ]
-ne 不等於 if [ "$a" -ne "$b" ]
-gt 大於 if [ "$a" -gt "$b" ]
-ge 大於等於 if [ "$a" -ge "$b" ]
-lt 小於 if [ "$a" -lt "$b" ]
-le 小於等於 if [ "$a" -le "$b" ]

< 小於(需要雙括弧) (( "$a" < "$b" ))
<= 小於等於(...) (( "$a" <= "$b" ))
> 大於(...) (( "$a" > "$b" ))
>= 大於等於(...) (( "$a" >= "$b" ))

6. shell中awk中if判斷

你直接運行grep '2018-06' gprs_c* | grep $num |more 看下是不是有輸出?

如果提示

Usage: grep [OPTION]... PATTERN [FILE]...

Try 'grep --help' for more information.

就是num沒有賦值

然後看下awk那裡,我這里舉了個例子,可以試試下裡面例子中的引號

$catgprs_c
2018-06-02;447956815999;2018-06-0200:00:00
2018-06-03;447956815999;2018-06-0300:00:00
2018-06-04;447956815999;2018-06-0400:00:00
$grep'2018-06'gprs_c*|grep'447956815999'|awk-F";"'{if($3<"2018-06-0300:00:00")print$1}'
2018-06-02
$date1="2018-06-0300:00:00"
$grep'2018-06'gprs_c*|grep'447956815999'|awk-F";"'{if($3<"'"$date1"'")print$1}'
2018-06-02

7. C語言 if如果我想加if某變數等於=比如。。。等於apple,怎麼寫呢 是不是if(ch=「apple」);好像不行

用「==」,「=」符號在C語言中代表的是賦值的意義,比較相等的話,應該用「==」符號,前提是比較雙方的數據類型相同。不然會出現錯誤的。對吧!希望能幫到你!

8. linux shell編程 if語句無法判斷變數是否相等

(($num1 != $num2))裡面的是算術表達式
用(($num1 - $num2))
或者[ [ $num1 != $num2 ]]

9. linux中的{if($5!=4096)是什麼意思

如果第五個參數 不等於 4096

10. linux if判斷是不是數字

if echo $n|grep "^[0-9][0-9]*$";then
echo $n是數字
fi

熱點內容
win7文件夾打不開怎麼辦 發布:2024-09-21 19:30:35 瀏覽:208
雲主機和雲伺服器區別 發布:2024-09-21 19:06:39 瀏覽:162
安卓工業主板哪個好 發布:2024-09-21 18:53:23 瀏覽:13
軟體編程規范 發布:2024-09-21 18:52:47 瀏覽:296
oracle刪除表存儲過程 發布:2024-09-21 18:43:54 瀏覽:744
安卓設備如何設置聯網ip 發布:2024-09-21 18:40:42 瀏覽:921
宋美齡美國訪問 發布:2024-09-21 18:38:40 瀏覽:648
加密哈希演算法 發布:2024-09-21 18:23:35 瀏覽:144
android的sdk源碼 發布:2024-09-21 18:15:08 瀏覽:54
伺服器按量計費是什麼意思 發布:2024-09-21 18:07:42 瀏覽:696