1.CDPATH
如果設定了CDPATH,cd一個目錄時,首先查找CDPATH,如果CDPATH指明此目錄,剛此目錄成為目前工作目錄
->pwd
/usr/local/mysql
->cd /root/
/root
->echo $CDPATH
/usr/local/
->cd mysql
2.EXINIT變量儲存使用vi編輯器時的初始化選項,例如調用vi時要顯示行号,指令為
EXINIT='set nu';export EXINIT
例如:
[root@localhost ~]# EXINIT='set nu';export EXINIT
[root@localhost ~]# vi aa.txt
1
~
"aa.txt" [New File]
3.HOME
HOME目錄,通常定位于passwd檔案的倒數第2列,用于儲存使用者自身檔案,設定了HOME目錄
可以簡單使用cd指令進入它
[root@localhost ~]# HOME=/usr/local/;export HOME
[root@localhost root]# pwd
[root@localhost root]# cd
[root@localhost local]# pwd
/usr/local
4.IFS
IFS用作shell指定的預設域分隔符.原理上講域分隔符可以是任意字元,但預設通常為空格,新行或
tab鍵.IFS在分隔檔案或變量中各域時很有用.下面的例子将IFS設定為冒号,然後echo PATH變量
[root@localhost local]# echo $PATH
/usr/lib/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost local]# export IFS=:
/usr/lib/qt-3.3/bin /usr/kerberos/sbin /usr/kerberos/bin /usr/local/sbin /usr/local/bin /sbin /bin /usr/sbin /usr/bin /root/bin
[root@localhost local]#
5.logname
此變量儲存登入名,應該為預設設定,但如果沒有設定,可以使用下面指令完成
LOGNAME='whoami';export LOGNAME
6.MAIL
MAIL變量儲存郵箱路徑名,預設為/var/spool/mail/<login name>.shell周期性檢查新郵件,如果郵箱并
不在以上位置,可以用MAIL設定
MAIL=/usr/mail/root;export MAIL
7. MAINCHECK
MAIKCHECK預設為每60s檢查新郵件,但如果不想如此頻繁檢查新郵件,比如設為每2m,使用指令
MAILCHECK=120;export MAILCHECK
8.MAILPATH
如果有多個郵箱要用到MAILPATH,些變量設定将覆寫MAIL設定
MAILPATH=/var/spool/dave:/var/spool/admin;export MAILPATH
上面的例子中,MAIL檢測郵箱dave和admin
9 PATH
PATH變量儲存指令或腳本查找的目錄順序。
10 PS1
基本提示符包含shell提示符,預設對超級使用者為#,其他為$。可以使用任何符号作提示符
以下為兩個例子
[root@localhost ~]# PS1="START TREK:";export PS1
START TREK:
11 PS2
PS2為附屬提示符,預設符号為>,PS2用于執行多行指令或超過一行的一個指令
12 SHELL
SHELL變量儲存預設SHELL,通常在/etc/passwd中已設定
13 TERMINFO
終端初始化變量儲存終端配置檔案的位置,通常在/usr/lib/terminfo或/usr/share/terminfo
14 TERM
TERM變量儲存終端類型。設定TERM使應用獲知終端對螢幕和鍵盤響應的控制序列類型
常用的有VT100,VT200,VT220-8等
15 TZ
時區變量儲存時區值,隻有系統管理者才可以更改些設定
SET指令在$HOME下的.profile檔案中設定環境變量時,還有另一種方法導出這些變量。使用
set -a指明所有變量直接被導出,不要在/etc/profile中使用這種方法,最好隻在自己的$HOME.profile
檔案中使用
位置變量參數
如果要向一個sehll腳本傳遞作息,可以使用位置參數完成此功能。參數相關數目傳入腳本,此數目可以
任意多,但隻有前9個可以被通路,使用shift指令可以改變這個限制。參數從第一個開始,在第9個結束
每個通路參數前要加$符号。第一個參數為0,表示預留實際腳本名字。無論腳本是否有參數,些值均可用
[root@localhost ~]# sh param.sh Did You See The Full Moon
This is the script name : param.sh
This is the first parameter : Did
This is the first parameter : You
This is the first parameter : See
This is the first parameter : The
This is the first parameter : Full
This is the first parameter : Moon
This is the first parameter :
腳本的内容為
[root@localhost ~]# cat param.sh
#!/bin/bash
echo "This is the script name : $0"
echo "This is the first parameter : $1"
echo "This is the first parameter : $2"
echo "This is the first parameter : $3"
echo "This is the first parameter : $4"
echo "This is the first parameter : $5"
echo "This is the first parameter : $6"
echo "This is the first parameter : $7"
echo "This is the first parameter : $8"
echo "This is the first parameter : $9"
這裡隻傳遞了6個參數,7,8,9參數為空,正好預計的那樣。
特定變量參數
既然已經知道了如何通路和使用shell腳本中的參數,多知道一點資訊也是很有用的。有必要知道運作的
一些相關控制資訊,這就是特定變量的由來。共有七個特定變量。見下表
##################################################################################
特定SHELL變量
$# 傳遞到腳本的參數個數
$* 以一個單字元串顯示所有向腳本傳遞的參數,與位置變量不同,此選項參數可超過9個
$$ 腳本運作的目前程序ID号
$! 背景運作的最後一個程序的程序ID号
$@ 與$#相同,但是使用時加引号,并在引号中傳回每個參數
$- 顯示shell使用的目前選項,與set指令功能相同
$? 顯示最後指令的退出狀态。0表示沒有錯誤,其它任何值表明有錯誤
本文轉自 gm100861 51CTO部落格,原文連結:http://blog.51cto.com/gm100861/789367