Shell Bash 的內(nèi)部變量

$BASH 變量 —— 用于引用 Bash 實例的全路徑名。變量的值如下所示:

BASH 變量

$HOME 變量 —— 當前用戶的 home 目錄,通常是 /home/<username>。

$IFS 變量 —— IFS 是內(nèi)部字段分隔符的縮寫。此變量決定當 Bash 解析字符串時將怎樣識別字段,或單詞分界線。變量 $IFS 的默認值是空格、制表符和換行符。下面是使用示例:

IFS 變量

$OSTYPE 變量 —— 操作系統(tǒng)類型:

OSTYPE 變量

$SECONDS 變量 —— 腳本已經(jīng)運行的秒數(shù)。下面是該變量的使用示例:

#! /bin/bash -

TIME_LIMIT=10
INTERVAL=1

echo
echo "Hit Ctrl-C to Exit"
echo

while [ "$SECONDS" -le "$TIME_LIMIT" ]
do
    if [ "$SECONDS" -eq 1 ]
    then
        units=second
    else
        units=seconds
    fi
    echo "This script has been running $SECONDS $units."

    sleep $INTERVAL
done

exit 0

該示例的運行效果:


示例的運行效果

$TMOUT 變量 —— 如果 $TMOUT 變量被指定了一個非零的值,此值就會被 Bash 的內(nèi)部命令
read 作為默認的超時秒數(shù)。在交互式的 Shell 中,$TMOUT 的值被作為命令行提示符等待輸入的秒數(shù),如果在等待的秒數(shù)內(nèi)沒有輸入,Bash 將自動被終結(jié)。該變量的使用示例:

#! /bin/bash -

set -o nounset
TMOUT=3

echo "Are you ok? (Y/N)"
read input

if [ "$input" == "Y" ]
then
    echo "Continue..."
else
    echo "Exit!"
fi

該示例的運行效果:


示例的運行效果

$UID 變量 —— 當前用戶的賬號標識碼(ID 號),與 /etc/passwd 中記錄的相同。此變量記錄的是當前賬戶的真實 ID,即使該賬戶通過 su 命令已經(jīng)獲得了另一個賬號的權(quán)限。$UID 是一個只讀變量,不接受從命令行或腳本的修改。下面這個腳本使用 $UID 變量來判斷當前賬號是否為 root:

#! /bin/bash -

root_uid=0
if [ "$UID" -eq "$root_uid" ]
then
    echo "You are root."
else
    echo "You are just an ordinary user."
fi

exit 0

該示例的運行效果:


示例的運行效果

本文參考自 《Linux Shell命令行及腳本編程實例詳解

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容