linux每個if都要搭配fi嗎

時間 2022-03-11 18:45:23

1樓:

每個if語句都要用fi結束,而且是每一個if都要對應一個fi。

整個if語句用fi閉合起來才算完整,書寫時if和fi要垂直對齊以方便檢視。

格式舉例:

if  condition

then

command1

command2

fi

condition是判斷條件,如果 condition 成立(返回「真」),那麼 then 後邊的語句將會被執行;如果 condition 不成立(返回「假」),那麼不會執行任何語句。最後必須以fi來閉合,fi 就是 if 倒過來拼寫,即使有多條語句也不需要用包圍起來。

擴充套件資料

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。

2樓:

是的, 用fi表示if語句塊的結束。

3樓:匿名使用者

是的,每個if語句都要用fi結束,其應用格式如下:

if  條件

then

command1

[else

command2]  #中括號表示else語句可以沒有fi            #別忘了這個結尾if語句忘了結尾fi,在執行時報錯如下:

test.sh: line xx: syntax error: unexpected end of fi

以上語句的意思是當"條件"的結果為真值時,進入then後面的語句command1,否則執行else語句中command2。執行完command 或 沒有else語句,命令就走到fi結束該if語句

4樓:一米一度

肯定啊必須成對出現

iffi

linux shell 有幾個if條件有幾個fi

5樓:鏡子裡的靈魂

對的,有幾個if就有幾個fi,整個if語句才完整的合併起來,書寫時if和fi規格對齊方便檢視

6樓:google也知道

有幾個 if 就對應有幾個 fi

if [ $? -ne 0 ];then 是什麼意思

7樓:肥仙女

$?表示上一條命zhidao令返回值,$0表示第一個引數,-ne表示不等於。

這是unix的shell程式設計語句,如果上一條命令執行度後的結束**不是0則執行下面的命令,知道fi行之前。

如果上一條命令成功執行,返回0,否則返回1. [$? -ne 0] 表示如果$?的值不等回於0,則上一條答命令沒有執行。

此處應該是 ping -c 1 -w 2 $router >/dev/null 2>&1 執行失敗。

8樓:陽光上的橋

這是unix的shell程式設計語句,意思是如果上一條命令執行後的結束**不是0則執行下面的命令,知道fi行之前,例子:

who am i | grep root

if [ $? -ne 0 ]

then

echo 'hello'fi

9樓:她是我的小太陽

$# 表示提供到shell指令碼或者函式的引數總數。

$0 表示第一個引數。

-ne 表示不等於。

這是unix的shell程式設計語句,如果上一條命令執行後的結束**不是0則執行下面的命令,知道fi行之前,例子:

who am i | grep root

if [ $? -ne 0 ]

then

echo 'hello'

fi另外:

整數比較

-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"))

10樓:匿名使用者

是正規表示式?el語言?

shell 中 if[x$1 = x];then 什麼意思

11樓:匿名使用者

(命令列第一個引數來) $1 如果只等如x, 那就是自變數沒有內容,是空變數, 也

是用來測試命令列上有沒有引數,例如

user@minix-nb:~$ cat a#! /bin/bash

if [ x$1 = x ]

then

echo "the first argu is empty"

else

echo "the first argu is $1"

fiuser@minix-nb:~$ ./athe first argu is emptyuser@minix-nb:

~$ ./a 123the first argu is 123user@minix-nb:~$

這樣 ok? :)

linux bourne shell編譯出錯:syntax error: end of file unexpected (expecting "fi") 15

12樓:匿名使用者

if [ $person =~ root ]

改成if [ $person == root ]

13樓:融火

finis是什麼?會不會把「let me know if you」裡面的if當成語句了。

14樓:匿名使用者

有幾點需要看看:

1、 if [ $person =~ root ] -------------這是要表示什麼?是說明如果不等於root?

2、 cat <<-finis ----------- 結束時卻是 finis ,好像沒匹配上

3、for 迴圈本身就會去遍歷全部內容,感覺你加 shift ,不知道意義何在

為什麼好多軟體都要在Linux上程式設計

windows或linux都是一樣的,但有的客戶為了節約成本選擇linux,windows的維護費用很高,因為公司不像個人,不好隨便用盜版.對於linux,雖然可能要配專人維護,但大多數客戶並不需要這麼做,所以linux在這方面幾乎是沒有成本的。比如商業伺服器,如果用windows server是不...

每個成功的人都要戰勝自己的心理嗎

沒有一個人的人生是一帆風順的 只要努力就精彩!遇到任何事情要樂觀對待 保持一顆平常心。只要謹記 這一秒不放棄,下一秒有奇蹟 人生難免跌倒和等候 要勇敢的抬頭 陽光總在風雨後 我給您意見,您看行嗎?1.用心另眼看世界吧,這世上不是每個人都很順利,只是看自己怎麼解決,比如你走路的時候被人撞了,別人給你道...

每個人都帶有面具,每個人都要帶著面具生活,為什麼?

人都有面具,心理學上有 人格面具 的說法 也就是在社會中,人所表現出來的,肯定不全是自發的自己,而有一部分是順應別人的期望 社會的看法等。人格面具對人順利的適應社會,是必須的。人格你知道是什麼吧?簡單的說,也可以認為是一個人處事接物的行為習慣模式。我們生活在社會中,行為習慣模式肯定要有面具的成分的,...