你說的是shell腳本中的變量吧。 一般直接賦值,類似: DIR=/opt/xxx 這樣就可以了
創(chuàng)新互聯(lián)建站長期為1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為余江企業(yè)提供專業(yè)的網(wǎng)站制作、成都網(wǎng)站制作,余江網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
env --- 顯示/設(shè)置當(dāng)前用戶變量
用戶變量存在于所有的shell中,與用什么shell無關(guān),比如:HOME,SHELL等
export --- 設(shè)置當(dāng)前終端有效的臨時變量
顯示/設(shè)置當(dāng)前導(dǎo)出成用戶變量的shell變量。《Linux就該這么學(xué)》 一起學(xué)習(xí)。
終端關(guān)閉的同時,export的變量也失效。
在shell腳本中,變量默認(rèn)就是全局的。
如果要在不同的腳本中使用,可以用 export 命令將變量導(dǎo)出為環(huán)境變量。
直接: export 變量名
1.Linux的變量種類
按變量的生存周期來劃分,Linux變量可分為兩類:
1. 永久的:需要修改配置文件,變量永久生效。
2. 臨時的:使用export命令聲明即可,變量在關(guān)閉shell時失效。
2.設(shè)置變量的三種方法
1. 在/etc/profile文件中添加變量【對所有用戶生效(永久的)】
用VI在文件/etc/profile文件中增加變量,該變量將會對Linux下所有用戶有效,并且是“永久的”。
例如:編輯/etc/profile文件,添加CLASSPATH變量
# vi /etc/profile
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
注:修改文件后要想馬上生效還要運行# source /etc/profile不然只能在下次重進此用戶時生效。
2. 在用戶目錄下的.bash_profile文件中增加變量【對單一用戶生效(永久的)】
用VI在用戶目錄下的.bash_profile文件中增加變量,改變量僅會對當(dāng)前用戶有效,并且是“永久的”。
例如:編輯guok用戶目錄(/home/guok)下的.bash_profile
$ vi /home/guok/.bash.profile
添加如下內(nèi)容:
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
注:修改文件后要想馬上生效還要運行$ source /home/guok/.bash_profile不然只能在下次重進此用戶時生效。
3. 直接運行export命令定義變量【只對當(dāng)前shell(BASH)有效(臨時的)】
在shell的命令行下直接使用[export 變量名=變量值]
定義變量,該變量只在當(dāng)前的shell(BASH)或其子shell(BASH)下是有效的,shell關(guān)閉了,變量也就失效了,再打開新shell時就沒有這個變量,需要使用的話還需要重新定義。
1、系統(tǒng)位置,/etc目錄下的bashrc、profile、environment三個文件
2、用戶目錄(root或普通用戶)下的.bashrc、.bash_profile兩個文件,注意這兩個文件前面都有點,是隱藏文件。
按變量的周期劃為永久變量和臨時性變量2種:
永久變量:通過修改配置文件,配置之后變量永久生效。
臨時性變量:使用命令如export等命令設(shè)置,設(shè)置之后馬上生效。當(dāng)關(guān)閉shell的時候失效(這種主要用于測試比較多)。
按照影響范圍分為用戶變量和系統(tǒng)變量2種:
用戶變量(局部變量):修改的設(shè)置只對某個用戶的路徑或執(zhí)行起作用;
系統(tǒng)變量(全局變量):影響范圍是整個系統(tǒng)。
export命令顯示當(dāng)前系統(tǒng)定義的所有環(huán)境變量,運行返回結(jié)果如下:
echo $PATH命令輸出當(dāng)前的PATH環(huán)境變量的值,運行返回結(jié)果如下:
直接用export命令修改PATH值 (重啟終端后配置失效)
export PATH=$PATH:/home/sphc/software/bin
該文件為當(dāng)前用戶配置文件,修改后,作用于當(dāng)前用戶的環(huán)境變量。
該文件為當(dāng)前用戶配置文件,修改后,作用于當(dāng)前用戶的環(huán)境變量。
/etc/bashrc為系統(tǒng)環(huán)境配置文件,需要管理員權(quán)限(如root)或者對該文件的寫入權(quán)限,修改后,作用于所有用戶。
/etc/profile為系統(tǒng)全局配置文件,需要管理員權(quán)限或者對該文件的寫入權(quán)限,修改后,作用于系統(tǒng)下所有用戶的環(huán)境變量。
/etc/environment為系統(tǒng)環(huán)境配置文件,需要管理員權(quán)限或者對該文件的寫入權(quán)限,修改后,作用于系統(tǒng)下所有用戶的環(huán)境變量。
$ 在linux里是用來給變量命令的,例如$JAVA_HOME,是指JAVA_HOME的環(huán)境變量。
echo $JAVA_HOME 可以在linux終端輸出jdk的home目錄。
在Shell 腳本中向腳本傳遞參數(shù)也會用到$,例如腳本內(nèi)獲取參數(shù)的格式為:$n,n?代表一個數(shù)字,1 為執(zhí)行腳本的第一個參數(shù),2 為執(zhí)行腳本的第二個參數(shù),以此類推。
實例-向腳本傳遞三個參數(shù),并分別輸出,其中?$0?為執(zhí)行的文件名:
#!/bin/bash
Shell 傳遞參數(shù)實例!";
echo "執(zhí)行的文件名:$0";
echo "第一個參數(shù)為:$1";
echo "第二個參數(shù)為:$2";
echo "第三個參數(shù)為:$3";
擴展資料
另外$還可以配合幾個特殊字符用來處理參數(shù):
1、$#:傳遞到腳本的參數(shù)個數(shù)。 ??
2、$* :以一個單字符串顯示所有向腳本傳遞的參數(shù)。
如"$*"用「"」括起來的情況、以"$1 $2 … $n"的形式輸出所有參數(shù)。 ??
3、$$:腳本運行的當(dāng)前進程ID號 。??
4、$!:后臺運行的最后一個進程的ID號。 ??
5、$@:與$*相同,但是使用時加引號,并在引號中返回每個參數(shù)。
如"$@"用「"」括起來的情況、以"$1" "$2" … "$n" 的形式輸出所有參數(shù)。 ??
6、$-:顯示Shell使用的當(dāng)前選項,與set命令功能相同。 ??
7、$? :顯示最后命令的退出狀態(tài)。0表示沒有錯誤,其他任何值表明有錯誤。 ?