Unix中的dot命令詳解
Unix中的dot命令
dot 命令語(yǔ)法: . 外部命令
將外部命令放在當(dāng)前進(jìn)程(而不是子進(jìn)程)環(huán)境中運(yùn)行(類似c語(yǔ)言中的 #include語(yǔ)句),并繼承當(dāng)前進(jìn)程(shell)的所有變量。
例1:命令dot
腳本文件bye ,只含一條語(yǔ)句:
exit
作為外部命令執(zhí)行:
$ chmod u + x bye $ ./bye --- 子進(jìn)程因執(zhí)行exit命令而死亡 $ _ --- 當(dāng)前進(jìn)程仍在,沒(méi)有退出UNIX
使用dot 命令,作為內(nèi)部命令執(zhí)行:
$ . ./bye --- 當(dāng)前進(jìn)程因執(zhí)行exit命令而死亡 UNIX System V Release 4.0 login:_ --- 退出了UNIX
外部命令不能修改當(dāng)前(父)進(jìn)程的環(huán)境變量,使用dot 命令可以使新命令修改當(dāng)前進(jìn)程的環(huán)境變量。
例2:用dot命令修改當(dāng)前進(jìn)程的環(huán)境變量
以下是文件classic_set (當(dāng)前目錄下)的內(nèi)容:
version=classic
PATH=/usr/local/old_bin:/usr/bin:/bin:. -- PATH包含了當(dāng)前目錄 ‘.’
PS1=“classic>”
以下是文件latest_set (當(dāng)前目錄下)的內(nèi)容:
version= latest
PATH=/usr/local/new_bin:/usr/bin:/bin:.
PS1=“latest >”
用dot 命令執(zhí)行這兩個(gè)shell腳本:
$ . ./classic_set --- dot 命令,需要指出當(dāng)前目錄 ./ classic> echo $version --- 環(huán)境變量PS1(提示符)被改為classic classic -- PATH包含了當(dāng)前目錄 ‘.’ classic> . latest_set --- dot 命令, 不需要指出當(dāng)前目錄./ latest > echo $version ---環(huán)境變量PS1 (提示符)被改為latest latest latest > $ . .profile
dot命令在當(dāng)前shell中執(zhí)行初始化文件.profile。局部和全局變量都將在當(dāng)前shell中重新定義。dot命令可以免去必須先注銷再重新登錄回來(lái)的麻煩。
相關(guān)文章:
1. UNIX 文件系統(tǒng)基本操作2. UNIX 新手指南,第 3 部分:正則表達(dá)式3. COUNIX上活動(dòng)硬盤的安裝4. Unix系列shell程序編寫(下)5. 對(duì)話 UNIX,第 8 部分: UNIX 進(jìn)程6. 對(duì)話 UNIX: 更多 shell 腳本技術(shù)7. 在 UNIX 中安裝和配置開(kāi)發(fā) Web 服務(wù)器8. Solaris10基礎(chǔ):開(kāi)源的類UNIX系統(tǒng)9. 對(duì)話 UNIX: 掌握強(qiáng)大的命令行10. 對(duì)話 UNIX,第 5 部分: 操縱數(shù)據(jù)與文件
