2012-01-21 55 views
23

我是Linux新手,過去幾天一直在使用Shell腳本。我決定開始簡單。我打開一個「管家」程序,當我打開它時,爲終端提供了一些用戶界面。真的只是測試一下。Shell腳本:使用變量定義路徑

無論如何,我的問題在於我對shell變量的困惑。據我的理解,變量允許我存儲一個值(在這種情況下是字符串),並稍後在我的代碼中調用它。

所以,如果我想有一個變量來保存一些腳本集的漫長路徑,我理想的情況下可以將它保存爲否?

這裏就是我的意思是:

SPTH = '/home/Foo/Documents/Programs/ShellScripts/Butler' 

//Later on in that script// 

cd $SPTH 
./script1 

我試圖做的,大概用了錯誤的語法,是設置在我我們「CD」的路徑變量SPTH.Later和我設置參數爲$ SPTH。理想情況下,這將允許我然後運行該文件,而無需鍵入路徑。

但是,這不起作用。它只是忽略「$ SPTH」,並將該命令視爲「cd」。

那麼我做錯了什麼?什麼是這樣做的方法?

+5

如果我沒有記錯,您不使用圍繞「=空間」。 –

回答

63

不要使用空格...

(錯誤)

SPTH = '/home/Foo/Documents/Programs/ShellScripts/Butler' 

(正確)

SPTH='/home/Foo/Documents/Programs/ShellScripts/Butler' 
+0

非常感謝!現在就像一個魅力,我必須記住這一點。 – Nonameghost

+4

如果在路徑中有一個空格,在腳本中使用'SPTH'並且它的值有一個空格,那麼如果在路徑中有空格 – Eatdoku

+7

@Eatdoku,那麼用雙引號括住變量。例如。 'cd「$ SPTH」' –