我正在編寫一個簡單的紅寶石沙盒命令行實用工具,用於將目錄從遠程文件系統複製和解壓縮到本地暫存目錄,以解壓縮並讓用戶編輯文件。我使用Dir.mktmpdir作爲默認的scratch目錄,這給出了一個非常難看的路徑(例如:/ var/folders/zz/zzzivhrRnAmviuee +++ 1vE +++ yo/-Tmp-/d20100311-70034-abz5zj)從紅寶石腳本更改調用shell的當前工作目錄
我想要copy-and-unzip腳本的最後一個動作,將調用shell轉換到新的scratch目錄,以便人們可以輕鬆訪問它,但我無法弄清楚如何更改PWD調用shell。一種可能性是讓該實用程序打印出stdout的新路徑,然後將該腳本作爲子shell的一部分運行(即cd $(sandbox my_dir)
),但我想打印出複製和解壓縮的進度,因爲它可能需要10分鐘,所以這是行不通的。我是否應該將它轉到預先確定的,易於查找的臨時目錄?有沒有人有更好的建議?在此先感謝您的幫助。 -Erik
'$()'沒有使用子shell,它是命令替換。子shell是用裸括號完成的:'(cd/tmp)'(實際上什麼都不做,因爲只有子shell執行chdir,保持原來的shell不變。 – 2010-03-12 01:24:27
參見http://stackoverflow.com/questions/2375003 http://stackoverflow.com/questions/874452 http://stackoverflow.com/questions/2405255和其他... – ephemient 2010-03-12 02:03:37