我想在C中編寫一個命令行工具,它可以作爲可移植到Windows/Mac/Linux的高級「cd」或「pushd/popd」命令。 (詳細信息,如果您好奇,請致電http://alsweigart.tumblr.com/post/4008393181/command-line-idea-up)以便攜方式以編程方式更改shell的cwd
問題是,當用戶從shell運行程序時,更改當前工作目錄將更改程序的cwd而不是shell的cwd。
有沒有辦法編寫一個程序來做我想做的事情,還是我不得不求助於編寫bash腳本/批處理文件?
或者,有沒有一種方法可以將程序的輸出作爲shell命令運行?即程序輸出「cd/foo/bar」,shell腳本調用該程序並將其輸出作爲shell命令運行。
那麼在Unix上'cd'也必須一直是內置的shell? – Joey 2011-05-24 23:16:40
這是正確的。將'cd'實現爲外部進程將使得不可能更改shell進程的當前目錄。 – 2011-05-24 23:18:02