功能說(shuō)明:設置或顯示環(huán)境變量。 語(yǔ) 法:export [-fnp][變量名稱(chēng)]=[變量設置值] 補充說(shuō)明:在shell中執行程序時(shí),shell會(huì )提供一組環(huán)境變量。export可新增,修改或刪除環(huán)境變量,供后續執行的程序使用。export的效力僅及于該此登陸操作。 參 數: 一個(gè)變量創(chuàng )建時(shí),它不會(huì )自動(dòng)地為在它之后創(chuàng )建的shell進(jìn)程所知。而命令export可以向后面的shell傳遞變量的值。當一個(gè)shell腳本調用并執行時(shí),它不會(huì )自動(dòng)得到原為腳本(調用者)里定義的變量的訪(fǎng)問(wèn)權,除非這些變量已經(jīng)被顯式地設置為可用。export命令可以用于傳遞一個(gè)或多個(gè)變量的值到任何后繼腳本。 登錄到系統后,系統將啟動(dòng)一個(gè)用戶(hù)shell。在這個(gè)shell中,可以使用shell命令或聲明變量,也可以創(chuàng )建并運行shell腳本程序。運行shell腳本程序時(shí),系統將創(chuàng )建一個(gè)子shell。此時(shí),系統中將有兩個(gè)shell,一個(gè)是登錄時(shí)系統啟動(dòng)的shell,另一個(gè)是系統為運行腳本程序創(chuàng )建的shell。當一個(gè)腳本程序運行完畢,它的腳本shell將終止,可以返回到執行該腳本之前的shell。從這種意義上來(lái)說(shuō),用戶(hù)可以有許多shell,每個(gè)shell都是由某個(gè)shell(稱(chēng)為父shell)派生的。 在子shell中定義的變量只在該子shell內有效。如果在一個(gè)shell腳本程序中定義了一個(gè)變量,當該腳本程序運行時(shí),這個(gè)定義的變量只是該腳本程序內的一個(gè)局部變量,其他的shell不能引用它,要使某個(gè)變量的值可以在其他shell中被改變,可以使用export命令對已定義的變量進(jìn)行輸出。 export命令將使系統在創(chuàng )建每一個(gè)新的shell時(shí)定義這個(gè)變量的一個(gè)拷貝。這個(gè)過(guò)程稱(chēng)之為變量輸出。 #echo $PKG_PATH 在任何時(shí)候建立的變量都只是當前shell的局部變量,所以不能被shell運行的其他命令或shell程序所利用。 export ,是把你設置的環(huán)境變量傳給當前SHELL的子SHELL,使其在子SHELL中有效。 擴展閱讀:linux 的export 和source命令
linux 的export 和source命令 source命令(從 C Shell 而來(lái))是bash shell的內置命令。點(diǎn)命令,就是一個(gè)點(diǎn)符號,(從Bourne Shell而來(lái))是source的另一名稱(chēng)。這兩個(gè)命令都以一個(gè)腳本為參數,該腳本將作為當前shell的環(huán)境執行,即不會(huì )啟動(dòng)一個(gè)新的子進(jìn)程。所有在腳 本中設置的變量將成為當前Shell的一部分。同樣的,當前腳本中設置的變量也將作為腳本的環(huán)境,source(或點(diǎn))命令通常用于重新執行剛修改的初始 化文件,如 .bash_profile 和 .profile 等等。例如,如果在登錄后對 .bash_profile 中的 EDITER 和 TERM 變量做了修改,則可以用source命令重新執行 .bash_profile 中的命令而不用注銷(xiāo)并重新登錄。象 .bash_profile 或其它類(lèi)似的Shell腳本這樣,文件無(wú)需可執行權限即可用source或點(diǎn)命令執行。
source命令的一個(gè)妙用
在編譯核心時(shí),常常要反復輸入一長(cháng)串命令,如 make mrproper make menuconfig make dep make clean make bzImage ....... 這些命令既長(cháng),又繁瑣。而且有時(shí)候容易輸錯,浪費你的時(shí)間和精力。如果把這些命令做成一個(gè)文件,讓它自動(dòng)按順序執行,對于需要多次反復編譯核心的用 戶(hù)來(lái)說(shuō),會(huì )很方便。用source命令可以辦到這一點(diǎn)。它的作用就是把一個(gè)文件的內容當成是shell來(lái)執行。先在/usr/src/linux- 2.4.20目錄下建立一個(gè)文件,取名為make_command: 在其中輸入如下內容: make mrproper && make menuconfig && make dep && make clean && make bzImage && make modules && make modules_install && cp arch/i386/boot/bzImge /boot/vmlinuz_new && cp System.map /boot && vi /etc/lilo.conf && lilo -v 文件建立好之后,以后每次編譯核心,只需要在/usr/src/linux-2.4.20下輸入 source make_command 就行了。這個(gè)文件也完全可以做成腳本,只需稍加改動(dòng)即可。這里主要是讓大家理解source的用法。如果你用的不是lilo來(lái)引導系統,可以把最后兩句話(huà)去掉。配置你自己的引導程序來(lái)引導新內核。
shell編程中的命令有時(shí)和C語(yǔ)言是一樣的。&&表示與,||表示或。把兩個(gè)命令用&&聯(lián)接起來(lái),如 make mrproper && make menuconfig ,表示要第一個(gè)命令執行成功才能執行第二個(gè)命令。對執行順序有要求的命令能保證一旦有錯誤發(fā)生,下面的命令不會(huì )盲目地繼續執行。 一天一個(gè)linux命令-----export
功能說(shuō)明:設置或顯示環(huán)境變量。
語(yǔ) 法:export [-fnp][變量名稱(chēng)]=[變量設置值]
補充說(shuō)明:在shell中執行程序時(shí),shell會(huì )提供一組環(huán)境變量。export可新增,修改或刪除環(huán)境變量,供后續執行的程序使用。export的效力僅及于該此登陸操作。 -f 代表[變量名稱(chēng)]中為函數名稱(chēng)。 -n 刪除指定的變量。變量實(shí)際上并未刪除,只是不會(huì )輸出到后續指令的執行環(huán)境中。 -p 列出所有的shell賦予程序的環(huán)境變量。 案 例: 安裝memcache模塊
[root@localhost]#cd memcache-2.1.0 [root@localhost]#export PHP_PREFIX=/usr/local/server/php [root@localhost]#$PHP_PREFIX/bin/phpize [root@localhost]#./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config [root@localhost]#make && make install shell腳本程序時(shí),系統將創(chuàng )建一個(gè)子shell。此時(shí),系統中將有兩個(gè)shell,一個(gè)是登錄時(shí)系統啟動(dòng)的shell,另一個(gè)是系統為運行腳本程序創(chuàng ) 建的shell。當一個(gè)腳本程序運行完畢,它的腳本shell將終止,可以返回到執行該腳本之前的shell。從這種意義上來(lái)說(shuō),用戶(hù)可以有許多 shell,每個(gè)shell都是由某個(gè)shell(稱(chēng)為父shell)派生的。 序內的一個(gè)局部變量,其他的shell不能引用它,要使某個(gè)變量的值可以在其他shell中被改變,可以使用export命令對已定義的變量進(jìn)行輸出。 export命令將使系統在創(chuàng )建每一個(gè)新的shell時(shí)定義這個(gè)變量的一個(gè)拷貝。這個(gè)過(guò)程稱(chēng)之為變量輸出。 #echo $PKG_PATH |
聯(lián)系客服