0
在Linux/Ubuntu上使用啓動腳本時,可以訪問HOME之類的環境變量嗎?這些變量是特定於之後加載的用戶/配置嗎?啓動腳本中可用的環境變量
在Linux/Ubuntu上使用啓動腳本時,可以訪問HOME之類的環境變量嗎?這些變量是特定於之後加載的用戶/配置嗎?啓動腳本中可用的環境變量
是的,沒有。一些變量是特定於你的安裝的,另一些則是運行init腳本的shell。一個簡單的方法來了解最少的一組可用的是:
/usr/bin/env -i /bin/sh -c set
在我的系統(Fedora的15)爲此向上運行bash和outputing:
BASH=/bin/sh
BASHOPTS=cmdhist:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_EXECUTION_STRING=set
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="4" [1]="2" [2]="10" [3]="1" [4]="release" [5]="i386-redhat-linux-gnu")
BASH_VERSION='4.2.10(1)-release'
DIRSTACK=()
EUID=xxx
GROUPS=()
HOSTNAME=xxx
HOSTTYPE=i386
IFS=''
MACHTYPE=i386-redhat-linux-gnu
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/usr/local/bin:/bin:/usr/bin
POSIXLY_CORRECT=y
PPID=xxx
PS4='+ '
PWD=/home/xxx
SHELL=/bin/zsh
SHELLOPTS=braceexpand:hashall:interactive-comments:posix
SHLVL=1
TERM=dumb
UID=xxx
_=/bin/sh
在Ubuntu的/ bin/sh的是一個符號鏈接衝,輸出會更喜歡:
IFS=''
LINENO='1'
OPTIND='1'
PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
PPID='xxx'
PS1='$ '
PS2='> '
PS4='+ '
PWD='/home/xxx'
一般而言$ HOME是不是一個很好的選擇,如果你需要一個特定用戶的主目錄,使用〜用戶名,而不是像〜www數據, 〜ftp或〜root。