<span id="vexk9"><table id="vexk9"></table></span>

      export

      為shell變量或函數設置導出屬性。

      概要

      export [-fn] [name[=word]]...
      export -p
      

      主要用途

      選項

      -f:指向函數。
      -n:刪除變量的導出屬性。
      -p:顯示全部擁有導出屬性的變量。
      -pf:顯示全部擁有導出屬性的函數。
      -nf:刪除函數的導出屬性。
      --:在它之后的選項無效。
      

      參數

      name(可選):變量名或已定義函數名。

      value(可選):變量的值。

      返回值

      export返回true除非你提供了非法選項或非法名稱。

      例子

      # 顯示全部擁有導出屬性的變量。
      # export -p
      # export
      # 顯示全部擁有導出屬性的函數。
      # export -pf
      
      # 首先刪除要演示的變量名
      #unset a b
      # 定義變量的同時增加導出屬性
      export a b=3
      # 當然也可以先定義后增加導出屬性
      b=3
      export b
      
      # 修改擁有導出屬性的變量的值
      export a=5 b=7
      # 當然也可以直接賦值修改
      a=5;b=7
      
      # 刪除變量的導出屬性
      export -n a b
      
      # 首先刪除要演示的函數名
      unset func_1 func_2
      # 創建函數
      function func_1(){ echo '123'; }
      function func_2(){ echo '890'; }
      
      # 為已定義函數增加導出屬性
      export -f func_1 func_2
      
      # 刪除函數的導出屬性
      export -fn a b
      
      # 添加環境變量(JAVA)到`~/.bashrc`
      PATH=/usr/local/jdk1.7.0/bin:$PATH
      # 添加當前位置到動態庫環境變量
      export LD_LIBRARY_PATH=$(pwd):${LD_LIBRARY_PATH}
      

      錯誤用法

      Q&A

      Q:對變量或函數設置導出屬性有什么用?

      A:它們會成為環境變量,可以在腳本中訪問它們,尤其是腳本中調用的子進程需要時。( 參考鏈接4

      Q:如果我編寫的腳本修改了已有的環境變量的值,那么執行它會在當前終端生效嗎?會影響之前以及之后打開的終端嗎?

      A:只有通過source方式調用的腳本會生效,您可以查看source命令獲得更多信息;其他方式只是在子shell中執行。 之前的不會影響,之后的除非是修改了~/.bashrc這種啟動終端時加載的腳本。( 參考鏈接1

      Q:我腳本文件中調用~/.bashrc中定義的函數和變量。為什么在新打開的終端中通過 sh 方式調用該腳本或直接運行

      這個當前用戶有執行權限的腳本卻不能使用這些函數和變量?
      A:請在~/.bashrc文件中增加export它們的語句。另請參閱 知識點 段落。

      Q:數組和關聯數組也可以設置導出屬性嗎?

      A:是可以的(如果你的bash支持它們),不過有些問題( 參考鏈接2 )。

      Q:為什么我在查看變量或函數導出屬性的時候顯示的開頭是declare

      A:因為declare也能夠設置變量或函數的導出屬性,詳見declare命令。

      注意

      1. 該命令是bash內建命令,相關的幫助信息請查看help命令。

      知識點

      info bashbash在線文檔3.7.3節提到了shell執行環境,其中涉及變量和函數的內容如下

      那么第一句話中的參數又和變量有什么關系呢?在3.4節第一段中提到:

      A variable is a parameter denoted by a name.

      變量是有名字的參數。

      那么子shell確實繼承了父shell中帶有導出屬性的變量或函數。

      可參考鏈接: 執行腳本方式的區別

      參考鏈接

      1. 關于bashrc profile文件的討論
      2. 關于export數組的討論
      3. export -pf用法
      4. 環境變量和shell變量的區別

      擴展閱讀

      一般來說,配置交叉編譯工具鏈的時候需要指定編譯工具的路徑,此時就需要設置環境變量。查看已經存在的環境變量:

      [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"
      
      主站蜘蛛池模板: 色噜噜狠狠色综合日日| 狠狠色狠狠色综合| 亚洲国产亚洲综合在线尤物| 久久亚洲伊人中字综合精品| 久久婷婷国产综合精品| 曰韩人妻无码一区二区三区综合部| 亚洲人成在久久综合网站| 国产成人亚洲综合一区| 久久综合狠狠综合久久97色| 久久婷婷五夜综合色频| 狠狠色成人综合网图片区 | 久久青青草原综合伊人| 久久综合鬼色88久久精品综合自在自线噜噜 | 亚洲综合小说另类图片动图| 激情综合色综合久久综合| 亚洲国产美国国产综合一区二区| 欧美日韩综合一区二区三区| 色综合天天综合网国产成人网| 婷婷六月久久综合丁香可观看| 亚洲一本综合久久| 丁香六月激情综合| 五月婷婷激情综合| 久久丝袜精品综合网站| 亚洲综合在线另类色区奇米| 国产精品亚洲综合天堂夜夜| 久久综合久综合久久鬼色| 色欲综合久久躁天天躁蜜桃| 国产AV综合影院| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 天天综合天天综合色在线| 狠狠色综合久久婷婷| 亚洲国产综合精品| 色狠狠久久综合网| 婷婷久久香蕉五月综合| 国产精品综合一区二区三区| 天天做.天天爱.天天综合网| 色综合久久98天天综合| 国产成人+综合亚洲+天堂| 亚洲国产一成久久精品国产成人综合 | 一本久道久久综合狠狠躁AV| 亚洲AⅤ优女AV综合久久久|