Unix中的dot命令
dot 命令語法: . 外部命令
將外部命令放在當前進程(而不是子進程)環境中運行(類似c語言中的 #include語句),並繼承當前進程(shell)的所有變量。
例1:命令dot
腳本文件bye ,只含一條語句:
exit
作為外部命令執行:
$ chmod u + x bye
$ ./bye --- 子進程因執行exit命令而死亡
$ _ --- 當前進程仍在,沒有退出UNIX
使用dot 命令,作為內部命令執行:
$ . ./bye --- 當前進程因執行exit命令而死亡
UNIX System V Release 4.0
login:_ --- 退出了UNIX
外部命令不能修改當前(父)進程的環境變量,使用dot 命令可以使新命令修改當前進程的環境變量。
例2:用dot命令修改當前進程的環境變量
以下是文件classic_set (當前目錄下)的內容:
version=classic
PATH=/usr/local/old_bin:/usr/bin:/bin:. -- PATH包含了當前目錄 ‘.’
PS1=“classic>”
以下是文件latest_set (當前目錄下)的內容:
version= latest
PATH=/usr/local/new_bin:/usr/bin:/bin:.
PS1=“latest >”
用dot 命令執行這兩個shell腳本:
$ . ./classic_set --- dot 命令,需要指出當前目錄 ./
classic> echo $version --- 環境變量PS1(提示符)被改為classic
classic -- PATH包含了當前目錄 ‘.’
classic> . latest_set --- dot 命令, 不需要指出當前目錄./
latest > echo $version ---環境變量PS1 (提示符)被改為latest
latest
latest >
$ . .profile
dot命令在當前shell中執行初始化文件.profile。局部和全局變量都將在當前shell中重新定義。dot命令可以免去必須先注銷再重新登錄回來的麻煩。