W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
為shell變量或函數(shù)設(shè)置導(dǎo)出屬性。
export [-fn] [name[=word]]...
export -p
-f:指向函數(shù)。
-n:刪除變量的導(dǎo)出屬性。
-p:顯示全部擁有導(dǎo)出屬性的變量。
-pf:顯示全部擁有導(dǎo)出屬性的函數(shù)。
-nf:刪除函數(shù)的導(dǎo)出屬性。
--:在它之后的選項(xiàng)無效。
name(可選):變量名或已定義函數(shù)名。
value(可選):變量的值。
export返回true除非你提供了非法選項(xiàng)或非法名稱。
# 顯示全部擁有導(dǎo)出屬性的變量。
# export -p
# export
# 顯示全部擁有導(dǎo)出屬性的函數(shù)。
# export -pf
# 首先刪除要演示的變量名
#unset a b
# 定義變量的同時增加導(dǎo)出屬性
export a b=3
# 當(dāng)然也可以先定義后增加導(dǎo)出屬性
b=3
export b
# 修改擁有導(dǎo)出屬性的變量的值
export a=5 b=7
# 當(dāng)然也可以直接賦值修改
a=5;b=7
# 刪除變量的導(dǎo)出屬性
export -n a b
# 首先刪除要演示的函數(shù)名
unset func_1 func_2
# 創(chuàng)建函數(shù)
function func_1(){ echo '123'; }
function func_2(){ echo '890'; }
# 為已定義函數(shù)增加導(dǎo)出屬性
export -f func_1 func_2
# 刪除函數(shù)的導(dǎo)出屬性
export -fn a b
# 添加環(huán)境變量(JAVA)到`~/.bashrc`
PATH=/usr/local/jdk1.7.0/bin:$PATH
# 添加當(dāng)前位置到動態(tài)庫環(huán)境變量
export LD_LIBRARY_PATH=$(pwd):${LD_LIBRARY_PATH}
A:它們會成為環(huán)境變量,可以在腳本中訪問它們,尤其是腳本中調(diào)用的子進(jìn)程需要時。( 參考鏈接4 )
A:只有通過source方式調(diào)用的腳本會生效,您可以查看source命令獲得更多信息;其他方式只是在子shell中執(zhí)行。 之前的不會影響,之后的除非是修改了~/.bashrc這種啟動終端時加載的腳本。( 參考鏈接1 )
這個當(dāng)前用戶有執(zhí)行權(quán)限的腳本卻不能使用這些函數(shù)和變量?A:請?jiān)趡/.bashrc文件中增加export它們的語句。另請參閱 知識點(diǎn) 段落。
A:是可以的(如果你的bash支持它們),不過有些問題( 參考鏈接2 )。
A:因?yàn)閐eclare也能夠設(shè)置變量或函數(shù)的導(dǎo)出屬性,詳見declare命令。
在info bash或 bash在線文檔 的 3.7.3節(jié)提到了shell執(zhí)行環(huán)境,其中涉及變量和函數(shù)的內(nèi)容如下
shell parameters that are set by variable assignment or with set or inherited from the shell’s parent in the environmentshell functions defined during execution or inherited from the shell’s parent in the environment
那么第一句話中的參數(shù)又和變量有什么關(guān)系呢?在3.4節(jié)第一段中提到:
A variable is a parameter denoted by a name.
變量是有名字的參數(shù)。
那么子shell確實(shí)繼承了父shell中帶有導(dǎo)出屬性的變量或函數(shù)。
可參考鏈接: 執(zhí)行腳本方式的區(qū)別
一般來說,配置交叉編譯工具鏈的時候需要指定編譯工具的路徑,此時就需要設(shè)置環(huán)境變量。查看已經(jīng)存在的環(huán)境變量:
[root@localhost ~]# export
declare -x G_BROKEN_FILENAMES="1"
declare -x HISTSIZE="1000"
declare -x HOME="/root"
declare -x hostname="localhost"
declare -x INPUTRC="/etc/inputrc"
declare -x LANG="zh_CN.UTF-8"
declare -x LESSOPEN="|/usr/bin/lesspipe.sh %s"
declare -x logname="root"
declare -x LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:"
declare -x mail="/var/spool/mail/root"
declare -x OLDPWD
declare -x PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
declare -x pwd="/root"
declare -x SHELL="/bin/bash"
declare -x SHLVL="1"
declare -x SSH_CLIENT="192.168.2.111 2705 22"
declare -x SSH_CONNECTION="192.168.2.111 2705 192.168.2.2 22"
declare -x SSH_TTY="/dev/pts/0"
declare -x TERM="linux"
declare -x USER="root"
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: