[問題] PATH環境變數的設定

看板Linux作者 (波西米亞)時間14年前 (2011/11/15 18:49), 編輯推噓2(204)
留言6則, 3人參與, 最新討論串1/1
請問,如果我有個目錄的路徑名稱裡有空格, 在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)

11/15 22:22, , 1F
叫的時候要用"$xx x", 因為空格是在expension時被展開的
11/15 22:22, 1F

11/15 22:23, , 2F
改IFS也可行,但是會有不少副作用
11/15 22:23, 2F

11/16 00:31, , 3F
cd "$MYPATH" 本來就該加雙引號
11/16 00:31, 3F

11/16 16:53, , 4F
樓上... 不一樣喔~ 有可以不必加雙引號的唷.
11/16 16:53, 4F

11/17 01:01, , 5F
我覺得加雙引號比其他解法都簡單 變數展開有空白的時候
11/17 01:01, 5F

11/17 01:01, , 6F
就會變成多個argument了(可以先下set -x看看)
11/17 01:01, 6F
文章代碼(AID): #1EmaF1rT (Linux)
文章代碼(AID): #1EmaF1rT (Linux)