2013-08-19 80 views
0

我想爲用戶編寫cript來設置安裝路徑。 我用這在shell中使用變量的路徑

read $file_path 
cd $file_path 

但它並沒有改變,以保存該變量的路徑。 我該如何設置這個,因爲這似乎是錯誤的方式?

回答

2

read不使用$來讀取變量。因此,它應該是

read file_path 
cd $file_path 
+0

同樣的問題,即使當我改變爲 – Hobbit1919

+0

@ user2250162路徑是否存在?嘗試執行'echo $ file; path ls $ file_path'來查看它是否正確得到它。 – fedorqui

+0

echo打印路徑,但cd不更改目錄 – Hobbit1919

1

字裏行間有點讀書,我想你想打電話給你希望改變呼叫者目錄的腳本:例如:

的MyScript:

read file_path 
cd "$file_path" 

命令行:

./myscript 

你發現它沒有改變目錄。這是因爲你在一個子進程中運行腳本。它會更改孩子的當前目錄,然後返回到不受影響的父級。

您需要文件,而不是,就是在當前進程中運行的命令,而不是單獨的一個:

. ./myscript 

是,在注意額外的「點」 .開始。這通常被稱爲source命令,您可以使用source而不是bash和csh上的'dot'。