本文轉貼自PTT
台灣最大的本土社群網站
分享這篇文章到Facebook、Google+或噗浪!
作者
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
----本文使用PCMAN+BBI轉貼----
※ 新版PCMAN開放測試中,新增功能:
自動登入PTT
PTT全文搜尋
分享PTT文章到Facebook、噗浪與Google+
預覽影片與圖片
用PCMAN+BBI連回
PTT原文