Shell基礎語法(中)

2021-09-21 02:42:11 字數 1651 閱讀 8133

if語句

基礎格式

格式1:if 條件 ; then 語句; fi

格式2:if 條件; then 語句; else 語句; fi

格式3:if …; then … ;elif …; then …; else …; fi

可以使用 && || 結合多個條件

if [ $a -gt 5 ] && [ $a -lt 10 ]; then

if [ $b -gt 5 ] || [ $b -lt 3 ]; then

算術比較運算子

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 ]

檔案的判斷

-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 ]

特殊用法

if [ -z "$a" ]  這個表示當變數a的值為空時會怎麼樣(養成好習慣,一定要對判斷的值新增 「雙引號」;如果是"檔案"可以省略)

if [ -n "$a" ] 表示當變數a的值不為空

if grep -q '123' 1.txt; then   表示如果1.txt中含有'123'的行時會怎麼樣

if [ ! -e file ]; then 表示檔案不存在時會怎麼樣

if (($a<1)); then …等同於 if [ $a -lt 1 ]; then… 

[ ] 中不能使用<,>,==,!=,>=,<=這樣的符號

# if grep -wq 'juispan' /etc/passwd; then echo "juispan already exists"; fi

juispan already exists

case語句

基礎格式

case  變數名 in 

value1)

command

;;value2)

command

;;*)

commond

;;esac

如果case中的某個value是一樣的,也可以這樣寫:

2|3)                    ##「 |」表示或的意思

command  ;;

Shell基礎語法(中)

if語句 基礎格式 格式1 if 條件 then 語句 fi 格式2 if 條件 then 語句 else 語句 fi 格式3 if then elif then else fi 可以使用 結合多個條件 if a gt 5 a lt 10 then if b gt 5 b lt 3 then 算術比...

shell 指令碼基礎語法

這句一般在 shell 指令碼的第一行。告訴作業系統,此指令碼的直譯器為 bin sh 這個可執行檔案。類似地,如果你的指令碼用 bash,ksh,解釋,第一行就應該是 bin bash bin ksh 注意 shell 指令碼對空格要求十分嚴格,關鍵字和符號之間必須加空格。1 字串判斷 str1 ...

shell基礎語法2018 03 21

一 shell中的數值運算及運算方式差異 1.expr 數值運算工具 表示式求值 expr 表示式 expr1 3 expr2 1 expr1 3 使用 要加轉義符 echo expr1 3 注意 表示式中,數值和運算子之間要有空格,出現在表示式中要加反引號 其他的表示式形式 表示式 表示式 2.執...