Environment-Variables
su -l root -c ’echo $HOME’ 列印我的使用者首頁
這是我的第一篇文章,
我有一些關於 su 的問題-
$$ user $$-C$$ command $$ 我進行了一些搜尋,我找到了這個執行緒和另一個與我的問題相關的執行緒。
如果它不存在,我正在嘗試設置使用者的環境變數。
# This function checks for a user $1, a var nammed $2 to $3 and set it to $3 if $2 not set. # $1: User to set env # $2: Var to set # $3: Value to add in $2 if not exist in $2 function setEnvIfNotDef () { if [ ! su ${1} -c "echo "${!2}" | grep "${3}"" ] then if [ ${2} = "PATH" ] then su ${1} -c "export ${2}=${!2}:${3}" else su ${1} -c "export ${2}=${3}" fi fi } setEnvIfNotDef ${USER_NAME} "TEST_HOME" ${INSTALL_PATH}
(USER_NAME 和 INSTALL_PATH 在我的程式碼中定義 ^^)
問題是,當我在 Yosemite/CentOS7 上的終端中嘗試 su - root -c 命令時。
Elio@Hackintosh-Elio [16:43:41] [Elio] #7975 $ su - root -c "whoami" Password: root Elio@Hackintosh-Elio [16:43:59] [Elio] #7976 $ su - root -c "echo $HOME" Password: /Users/Elio
su 之後的 - 等於 -l 對嗎?我不應該在root的環境中嗎?
請幫忙?:)
謝謝
使用單撇號而不是雙撇號:
$ su - -c 'echo $HOME' Password: /root