PATH環境變數的設定 - Linux

Lydia avatar
By Lydia
at 2011-11-15T18:49

Table of Contents


請問,如果我有個目錄的路徑名稱裡有空格,
在shell script裡面應該怎樣輸入設定我的環境變數呢?

描述得清楚一點,例如:

路徑: "/home/user/testdir"
我可以在shell script裡輸入:

export MYPATH=/home/user/testdir;

如此, 輸入 echo $MYPATH 就可以看到 MYPATH 的值是我方才設定的路徑.
(當然要先source 剛剛編輯好的shell script檔案)

但是,當路徑名為"/home/user/test dir",

(舉例來說) export MYPATH=/home/user/test\ dir; 就是無效的作法,

我上網搜尋過一些討論,都亂回答,或是解決辦法不難但有點迂迴.
例如:
------------------
mypath="dd d"

cd "$mypath"
------------------ 諸如此類
(搜尋關鍵字用英文似乎比較可靠...= = 搜尋到簡體中文的頁面,就會有亂回答的.)

是否比較直接的方式 "export MYPATH=....."就可以解決呢?
(為了這個,昨晚狗急跳牆,索性把目錄名稱有空格的都改掉....囧")

http://www.programmingforums.org/thread15474.html
例如這一個討論串,解決辦法就如上面例子,拐個小彎. (自己要記得加 "" )

--
Tags: Linux

All Comments

Elizabeth avatar
By Elizabeth
at 2011-11-16T21:45
叫的時候要用"$xx x", 因為空格是在expension時被展開的
Frederic avatar
By Frederic
at 2011-11-21T06:50
改IFS也可行,但是會有不少副作用
Jacob avatar
By Jacob
at 2011-11-23T13:30
cd "$MYPATH" 本來就該加雙引號
Ina avatar
By Ina
at 2011-11-28T00:42
樓上... 不一樣喔~ 有可以不必加雙引號的唷.
Michael avatar
By Michael
at 2011-11-29T07:06
我覺得加雙引號比其他解法都簡單 變數展開有空白的時候
就會變成多個argument了(可以先下set -x看看)

中文化問題

Elizabeth avatar
By Elizabeth
at 2011-11-15T15:08
大家好: 最近設定Ubuntu console中文化,快搞瘋了= = 由於系統安裝的時候,是載入brltty的方式, 安裝過程為全英文介面,無法切換回中文選單, 也沒有辦法選擇語系為zh.tw,只能事後再想辦法, 目前已作的: aptitude install language-pack-gnome-zh a ...

關於.bash_history

Bethany avatar
By Bethany
at 2011-11-15T07:59
大家好: 如果user的.bash_history被刪了,系統還有哪裡會留著嗎? 或者,有辦法查閱某些指令,在哪些時間點被呼叫過, EX:cp/rm/..... 感恩囉! - ...

移除Ubuntu與CentOS的圖形介面

George avatar
By George
at 2011-11-15T00:00
想請問要如何乾乾淨淨的移除Ubuntu 以及 CentOS的圖形介面? 或者重新安裝比較快?(應該有辦法選擇安裝純文字模式吧?) CentOS部份我已經利用圖形介面去移除自己的圖形介面 不過因為有一些錯誤 感覺有很多移除的動作沒做完成 - ...

關於在eeepc安裝ububtu畫面問題

Anonymous avatar
By Anonymous
at 2011-11-14T18:47
大家好 我想請問一下,我在eeepc裝了ubuntu 之後 有一個覺得很不方便的就是;不知道是我螢幕太小 還是怎樣,就是說有時候一些選單設定完之後,要按確定都沒有辦法 比方說,我設定好一些網路設定要按確認的時候, 它那個設定介面的下半部(確認/取消 的按鈕)都會顯示不出來 說顯示不出也不對,應該是 ...

安裝ATI驅動後 桌面不見只剩CODE介面

Isla avatar
By Isla
at 2011-11-14T18:32
從ADDITIONAL DRIVES安裝ATI驅動 重新開機後 登入畫面不見了 只剩下CODE畫面 CODE那邊會顯示要我登入的資訊 像是問帳號和密碼 打完帳號 密碼後 還是在CODE介面 必須把ATI驅動移除後 桌面才會正常顯示 請問有甚麼辦法可以解決嗎 謝謝 - ...