Linux之export命令


export命令用於將shell變量輸出為環境變量,或者將shell函數輸出為環境變量。

一個變量創建時,它不會自動地為在它之后創建的shell進程所知。而命令export可以向后面的shell傳遞變量的值。

命令語法

export [參數]

命令參數

  • -f:指向函數。
  • -n:刪除變量的導出屬性。
  • -p:顯示全部擁有導出屬性的變量。
  • -pf:顯示全部擁有導出屬性的函數。
  • -nf:刪除函數的導出屬性。

列出當前所有的環境變量

> export -p
declare -x CLASSPATH=".:/opt/java/jdk1.8.0_231/lib:/opt/java/jdk1.8.0_231/jre/lib"
declare -x HISTCONTROL="ignoredups"
declare -x HISTSIZE="1000"
declare -x HOME="/root"
declare -x HOSTNAME="JD"
declare -x JAVA_HOME="/opt/java/jdk1.8.0_231"
declare -x JAVA_OPTS="-server -Xms4096m -Xmx4096m -XX:PermSize=256M -XX:MaxNewSize=512m -XX:MaxPermSize=512m"
declare -x JRE_HOME="/opt/java/jdk1.8.0_231/jre"
declare -x LANG="en_US.UTF-8"
declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s"
declare -x LOGNAME="root"

定義環境變量

> export RUMENZ

定義環境變量賦值

> export RUMENZ=7

導出一個函數

導出一個func_1的函數

> function func_1(){ echo "123"; }

測試函數輸出

> func_1
123

在一個bash腳本中調用func_1

> vim test.sh
#!/bin/bash
func_1

//執行這個腳本,報錯
> bash test.sh
test.sh: line 3: func_1: command not found

在腳本中也能正常調用func_1函數,這時候就用到了export

> export -f func_1
//查看定義的函數

> export -pf
func_1 () 
{ 
    echo '123'
}
declare -fx func_1

刪除func_1的導出屬性

> export -fn func_1
//再執行腳本
> bash test.sh
test.sh: line 3: func_1: command not found

讓導出的變量永久生效

在命令行導出的各種變量,函數只是臨時有效,下次重新登錄,之前定義的變量,函數都將不存在。如果想讓我們定義的變量,函數每次登錄系統都可以用,那么就需要把變量的定義和導出都定義在一個文件里面,然后每次登錄系統都會執行一遍該文件就可以達到目的。

正常登錄配置文件順序加載過程,所謂正常登錄指用戶通過輸入用戶名和密碼登錄的狀態。

這里寫圖片描述

如果想對系統所有用戶都生效,可以把變量和導出定義在以下文件

/etc/profile
/etc/profile.d/*.sh
/etc/bashrc

如:定義JAVA_HOME環境變量

> vim /etc/profile


# 在最后加上
export JAVA_HOME=/usr/local/jdk1.8
export PATH=${JAVA_HOME}/bin:$PATH

//立即生效操作
> source /etc/profile

如果只想對某個用戶生效,可以在用戶的家目錄的以下文件中定義變量和導出

~/.bash_profile
~/.bashrc

自定義命令行前面的顯示。顯示用戶名、主機名、shell名稱

> vim ~/.bashrc

# 最后面加上
export PS1="\u@\h>\s "

//立即生效
> source ~/.bashrc

命令行前面由[root@local ~]#變成root@local>-bash

原文鏈接:https://rumenz.com/rumenbiji/linux-export.html
微信公眾號:入門小站


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM