簡體   English   中英

如何在bash --login -i上更改bash中的目錄

[英]How to change directory in bash upon bash --login -i

我正在使用Cygwin並希望使用diff params運行它,所以我可以在Windows中啟動后立即更改dir。

例如

bash --login -i ; cd /

要么

bash --login -i ; cd /tmp

但是cd不起作用,如何將更改目錄傳遞給

bash --login -i

僅供參考我無法將cd放入.bash中,必須將其傳入

試了這個沒有運氣

bash --login -i -s cd /tmp;

一個hack是使用-c來更改目錄,然后立即啟動一個新shell來代替第一個。 工作目錄是繼承的。 請注意, 任何 shell(支持exec )都可用於啟動新進程; 一旦工作目錄被更改,那么您可以啟動bash的交互式登錄實例。

bash -c "cd /tmp; exec bash --login -i"

我使用.bashrc.bash_logout來恢復以前的位置。 .bash_logout我將當前目錄存儲在一個文件中:

if [ -d ~/.recent-locations ]; then
    pwd > ~/.recent-locations/locus-$RANDOM
fi

.bashrc我使用存儲的位置:

if [ -d .recent-locations ]; then
    for x in $(ls .recent-locations); do
        dstdir=$(cat .recent-locations/$x)
        rm .recent-locations/$x
        cd $dstdir
        break
    done
fi

為此,您需要使用Ctrl-Dlogout明確logout ; 另一方面,如果您不想記錄您的位置,只需通過窗口管理器關閉終端窗口即可。

好的,所以我找到了我需要的解決方案。 在Cygwin .bashrc我放了

"$OLDPWD" ,它將自動切換到我在Windows中的最后一個目錄,然后分叉,

希望能幫助別人,

肖恩

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM