2015-04-02 35 views
0

我知道在運行屏幕命令之前,您通常可以在您的screenrc文件中使用chdir來更改目錄。但是,如果我設置了defshell -bash,這對我不起作用。下面是不起作用的示例文件:當defshell設置爲bash時,如何更改屏幕中的默認目錄?

defshell -bash 
    defscrollback 100000 

    hardstatus on 
    hardstatus alwayslastline 
    hardstatus string "%w%=%m/%d %c" 

    chdir /Users/myuser/work 
    screen -t "work" 

$ screen -c testrc

$ pwd /Users/myuser

註釋掉的第一行是卓有成效的,但我想在我的屏幕上運行的bash炮彈。這是在OSX上,如果這是相關的。我的屏幕命令不是別名。

+0

如果你在一個不相關的shell運行'cd/tmp','bash','pwd',會發生什麼?它打印'/ tmp'還是'/ Users/myuser'? – 2015-04-02 15:18:17

回答

1

問題是您的defshell指定了一個登錄 shell,這會使其進入主目錄。據screen's manual

shell命令

,設置命令可以用來創建一個新的外殼。這將覆蓋環境變量$ SHELL的值。如果你想運行一個期望執行$ SHELL中指定的程序的tty-enhancer,這很有用。如果該命令以' - '字符開始,則shell將作爲登錄shell啓動。

如果更改到

defshell bash 

它不應該這樣做。

+0

工作正常!我遇到的下一個問題是我沒有自定義提示,因爲它不是採購.bash_profile。所以我創建了一個.bashrc並添加了以下行: 'source/etc/bashrc' 現在就像一個魅力一樣。謝謝! – jonathanpdx 2015-04-03 16:48:25