作者MrWind (波西米亞)
看板Linux
標題[問題] PATH環境變數的設定
時間Tue Nov 15 18:49:34 2011
請問,如果我有個目錄的路徑名稱裡有空格,
在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
例如這一個討論串,解決辦法就如上面例子,拐個小彎. (自己要記得加 "" )
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.152.196
※ 編輯: MrWind 來自: 140.113.152.196 (11/15 18:50)
※ 編輯: MrWind 來自: 140.113.152.196 (11/15 18:50)
※ 編輯: MrWind 來自: 140.113.152.196 (11/15 19:04)
※ 編輯: MrWind 來自: 140.113.152.196 (11/15 19:04)
→ kdjf:叫的時候要用"$xx x", 因為空格是在expension時被展開的 11/15 22:22
→ kdjf:改IFS也可行,但是會有不少副作用 11/15 22:23
推 ckclark:cd "$MYPATH" 本來就該加雙引號 11/16 00:31
→ MrWind:樓上... 不一樣喔~ 有可以不必加雙引號的唷. 11/16 16:53
推 ckclark:我覺得加雙引號比其他解法都簡單 變數展開有空白的時候 11/17 01:01
→ ckclark:就會變成多個argument了(可以先下set -x看看) 11/17 01:01