linuxif與或非
⑴ shell 邏輯 與或非 求教
與 if [ $a -eq 1 -a $b -eq 1 ];then $a=1與$b=1
或 if [ $a -eq 1 -o $b -eq 1 ];then $a=1或$b=1
非 if [ ! $a -eq 1 ];then $a不等於1
⑵ linux shell if [[ ! -z $1 ]];是什麼意思
你可以輸入 type [ [[ 來看下他們的說明
$ type [ [[ test
[ is a shell builtin
[[ is a shell keyword
test is a shell builtin
絕大多數情況下,這個三個功能通用。但是命令和關鍵字總是有區別的。命令和 關鍵字的差
別有多大呢?
如果是命令,它就和參數組合為一體被 shell 解釋,那樣比如 ">" "<" 就被 shell 解釋為
重定向符號了。關鍵字卻不這樣。
在 [[ 中使用 && 和 ||
[ 中使用 -a 和 -o 表示邏輯與和邏輯或。
[[ 中可以使用通配符
arch=i486
[[ $arch = i*86 ]] && echo "arch is x86!"
[[ 中匹配字元串或通配符,不需要引號
⑶ linux 命令中 > >>的區別
二者都是Linux系統的輸出重定向符號
">" 是輸出到文件中, 如果文件存在, 則原來的內容被清空, 不存在則創建文件, 比如
ls > filelist.txt
">>"是把輸出追加到文件中, 如果文件存在, 追加到末尾, 不存在則創建文件
格式:
command-line1 [1-n] > file或文件操作符或設備
上面命令意思是:將一條命令執行結果(標准輸出,或者錯誤輸出,本來都要列印到屏幕上面的) 重定向其它輸出設備(文件,打開文件操作符,或列印機等等)1,2分別是標准輸出,錯誤輸出。
注意:
1、shell遇到」>」操作符,會判斷右邊文件是否存在,如果存在就先刪除,並且創建新文件。不存在直接創建。 無論左邊命令執行是否成功。右邊文件都會變為空。
2、「>>」操作符,判斷右邊文件,如果不存在,先創建。以添加方式打開文件,會分配一個文件描述符[不特別指定,默認為1,2]然後,與左邊的標准輸出(1)或錯誤輸出(2) 綁定。
3、當命令:執行完,綁定文件的描述符也自動失效。0,1,2又會空閑。
4、一條命令啟動,命令的輸入,正確輸出,錯誤輸出,默認分別綁定0,1,2文件描述符。
5、一條命令在執行前,先會檢查輸出是否正確,如果輸出設備錯誤,將不會進行命令執行
⑷ 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 類操作系統,並且使用人數還在迅猛增長。
⑸ linux命令中的「<」和「|」是什麼意思
」<」 表示的是輸入重定向的意思,就是把<後面跟的文件取代鍵盤作為新的輸入設備。
」| 」則表示一個管道的意思,可以理解為東西從管道的一邊流向另外一邊。
⑹ shell腳本中的if中多條件語句如何寫。
可以使用 if-elif-else 語法來寫多條件語句。
1、首先要理解if-else的基本用法,if條件+then操作+else操作+fi閉合,書寫方法如下:
2、 shell語法中[[ ]]和[ ]的主要區別
(1) [ ] 實際上是bash 中 test 命令的簡寫。即所有的 [ expr ] 等於 test expr。
對 test 命令來說, 用 -eq 要進行數字比較,而你此時傳入字元串,就報錯了。
(2) [[ ]] 是內置在shell中的一個命令,它比test強大的多。支持字元串的模式匹配(使用=~操作符時甚至支持shell的正則表達式)。邏輯組合可以不使用test的-a,-o而使用&& ||。
⑺ shell腳本中 if 判斷時候-s是什麼意思
指的是文件大小非0時為真。
⑻ linux if語句作用
-f 文件存在而且為真
-n str 字元串長度大於0為真
-z str 字元串長度為0真
str 字元串非空緯真
-eq 相等
-ne 不相等
-gt >
-lt <
-ge >=
-le <=
-r 可讀為真
-w 可寫為真
-x 可執行為真
-f 正規為真
-d 是目錄為真
-c 其他字元文件為真
-b 塊特殊文件真
-s 文件大小非0為真
邏輯判斷:
-a 與
-o 或
! 非
⑼ Linux中>>和>和<的區別
1、輸入輸出的區別:
>>和>都屬於輸出重定向,<屬於輸入重定向。
2、文件內容的區別:
>會覆蓋目標的原有內容。當文件存在時會先刪除原文件,再重新創建文件,然後把內容寫入該文件;否則直接創建文件。
>>會在目標原有內容後追加內容。當文件存在時直接在文件末尾進行內容追加,不會刪除原文件;否則直接創建文件。
Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和Unix的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的Unix工具軟體、應用程序和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。
(9)linuxif與或非擴展閱讀:
Linux優點:
1、Linux由眾多微內核組成,其源代碼完全開源;
2、Linux繼承了Unix的特性,具有非常強大的網路功能,其支持所有的網際網路協議,包括TCP/IPv4、TCP/IPv6和鏈路層拓撲程序等,且可以利用Unix的網路特性開發成出新的協議棧;
3、Linux系統工具鏈完整,簡單操作就可以配置出合適的開發環境,可以簡化開發過程,減少開發中模擬工具的障礙,使系統具有較強的移植性;
參考資料來源:網路-linux
⑽ Linux shell if語句
linux 0為真