天天看點

菜鳥學Linux 第016篇筆記 bash腳本之檔案測試,變量類型

菜鳥學Linux 第016篇筆記 bash腳本之檔案測試,變量類型

測試方法

[ EXPression ]  指令測試法

` EXEpression ` 關鍵字測試

test EXEression

bash中常用的條件測試三種:

整數測試:(雙目測試)

-gt 大于

-le 小于等于

-ne 不等于

-eq 等于

-ge 大于等于

-lt 小于

e.g.

INT1=63

INT2=77

[ $INT1 -eq $INT2 ]

[[ $INT -eq $INT2 ]]

test $INT1 -eq $INT2

檔案測試:(單目測試)

-e FILE; 測試檔案是否存在(existed)

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

-d FILE; 測試指定路徑是否為目錄(directory);

-r FILE; 測試目前使用者對指定檔案是否有讀取權限;

-w FILE; 測試目前使用者對指定檔案是否有可寫權限;

-x FILE; 測試目前使用者對指定檔案是否有可執行權限;

[ -e /etc/inittab ]

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

多分支的if語句:

if 判斷條件1;then

statement1

...

elif 判斷條件1;then

statement2

elif 判斷條件n;then

statementn

else

statement

fi

測試腳本是否有文法錯誤:

bash -n 腳本 含義:查腳本有無文法錯誤

bash -x 腳本 含義:逐漸執行

定義腳本退出狀态碼

exit: 退出腳本

exit #

如果腳本沒有明确定義退出狀态碼,那麼,最後執行的一條指令的退出狀态碼

即為腳本退出狀态碼。

bash變量的類型:

本地變量(局部變量) 作用域:目前shell程序

環境變量  作用域:目前shell程序,即其子shell

位置變量 $1 $2 $3 ...

shift n 移位到第n+1個參數;

./script /etc/fstab /etc/inittab

$1 /etc/fstab 表示腳本第一個參數

$2 /etc/inittab 表示腳本第二個參數

特殊變量

$? 上一條指令的退出狀态碼

$# 參數的個數

$* 參數清單

$@ 參數清單

小練習:寫腳本

script1

1、給定一個檔案:

如果是一個普通檔案,則顯示之;

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

否則,此為無法識别的檔案。

script2 

能接受一個參數(檔案路徑)

判定:此參數如果是一個存在的檔案,就顯示OK;

否則就顯示“No such file."

script3

1、給腳本傳遞兩個參數(整數);

2、顯示此兩者之和,之積;

key:

script1 

#!/bin/bash

#

FILE=/etc/rc.xxx

if [ ! -e $FILE ]; then 

echo "No such file."

exit 6

if [ -f $FILE ]; then

echo "Common file."

elif [ -d $FILE ]; then 

echo "Directory."

echo "Unrecognize file."

script2

FILE=$1

if [ $# -eq 0 ]; then

echo "You need to input a parameter."

exit 2

if [ -e $FILE ]; then

echo "OK"

else 

if [ $# -ne 2 ]; then

echo "Usage: command ARG1 ARG2."

exit 1

echo "The sum is $[$1+$2]."

echo "The xj is $[$1*$2]."

本文轉自Winthcloud部落格51CTO部落格,原文連結http://blog.51cto.com/winthcloud/1862941如需轉載請自行聯系原作者

Winthcloud

繼續閱讀