linux bash程式設計 條件測試和特殊變數

2022-06-11 10:27:07 字數 2401 閱讀 4461

(1)

整數測試

int1=63

int2=77

[ $int1 -eq $ini2 ]

[[ $int1 -eq $int2 ]]

test $int1 -eq $int2

檔案測試:

-e file:測試檔案是否存在

-f file: 測試檔案是否為普通檔案

-d file: 測試指定路徑是否為目錄

-r file: 測試當前使用者對指定檔案是否有讀取許可權;

-w-x //測試檔案可否執行。

-e filename 如果 filename存在,則為真

-d filename 如果 filename為目錄,則為真

-f filename 如果 filename為常規檔案,則為真

-l filename 如果 filename為符號鏈結,則為真

-r filename 如果 filename可讀,則為真

-w filename 如果 filename可寫,則為真

-x filename 如果 filename可執行,則為真

-s filename 如果檔案長度不為0,則為真

-h filename 如果檔案是軟鏈結,則為真

[ -e /etc/inittab ]

[ -x /etc/rc.d/rc.sysinit ]

練習:寫乙個指令碼

給定乙個檔案:

如果是乙個普通檔案,就顯示之;

如果是乙個目錄,亦顯示之;

否則,此為無法識別之檔案;

#!/bin/bash

#file=/etc/rc.d/rc.sysinit

if [ ! -e $file ]; then //中括號中的!,對測試結果取反。

echo "no such file."

exit 6 //退出碼為6

fiif [ -f $file ]; then

echo "common file."

elif [ -d $file ]; then

echo "directory."

else

echo "unknown."

fi

(2)定義指令碼退出狀態碼

exit: 退出指令碼

exit #

如果指令碼沒有明確定義退出狀態碼,那麼,最後執行的一條命令的退出碼($?)即為指令碼的退出狀態碼;

測試指令碼是否有語法錯誤:

bash -n 指令碼

bash -x 指令碼:單步執行

(3)bash變數的型別:

本地變數(區域性變數)

環境變數: 作用域為當前程序及其子程序。

位置變數: $1, $2, ...

shift //輪換,shift 1 自動切換到下乙個引數。

shift 2 自動切換到下下乙個引數。以此類推。

例:test.sh 1 2 3

#!/bin/bash

#echo $1 //輸出a

shift

echo $1 //輸出b

shift

echo $1 //輸出c

特殊變數:

$? //最後一條命令的狀態碼

$#:引數的個數

$*: 引數列表

$@:引數列表

./filetest.sh /etc/fstab /etc/inittab

$1: /etc/fstab

$2: /etc/inittab

練習:寫一指令碼

能接受乙個引數(檔案路徑)

判定:此引數如果是乙個存在的檔案,就顯示「ok.」;否則就顯示"no such file."

練習:寫乙個指令碼

給指令碼傳遞兩個引數(整數);

顯示此兩者之和,之乘積;

#!/bin/bash

#if [ $# -lt 2 ]; then //要求使用者必須輸入引數。

echo "usage: cacl.sh arg1 arg2"

exit 8

fiecho "the sum is: $[$1+$2]."

echo "the prod is: $[$1*$2]."

練習:寫乙個指令碼,完成以下任務

1、使用乙個變數儲存乙個使用者名稱;

2、刪除此變數中的使用者,且一併刪除其家目錄;

3、顯示「使用者刪除完成」類的資訊;

•組合測試條件

-a: 與關係

-o: 或關係

!: 非關係

if [ $# -gt 1 -a $# -le 3 ]

if [ $# -gt 1 ] && [ $# -le 3 ]

Sell程式設計 條件測試操作

測試表達是否成立,若成立返回0,否則返回其他數值 格式1 test條件表示式 格式2 條件表示式 最少有乙個空格1.操作符 檔案或目錄 echo 檢視前一命令的返回值 2.常用的測試操作符 d 測試是否為目錄 e 測試目錄或檔案是否存在 f 測試是否為檔案 r 測試當前使用者是否有讀取許可權 w 測...

Shell程式設計基礎 條件測試

test命令 用途 測試特定的表示式是否成立,當條件成立時,命令執行後返回值為0,否則為其他值 格式 test 條件表示式 條件表示式 注意,表示式左右有空格,方括號是必須有 常見的測試型別 測試檔案狀態 字串比較 整數值比較 邏輯測試 測試檔案狀態 格式 操作符 檔案或目錄 操作符 d測試是否為目...

Linux之shell程式設計 條件測試

1.測試檔案狀態表1 檔案狀態測試 d 目錄 s 檔案長度大於 0 非空 f 正規檔案 l 符號連線 r 可讀 x 可執行 s 檔案長度大於 0 非空 w 可寫 u 檔案有s u i d 位設定 x 可執行2.測試時使用邏輯操作符 a 邏輯與,操作符兩邊均為真,結果為真,否則為假。o 邏輯或,操作符...