題:
通過鍵入CD的名稱進入目錄?
Michael Durrant
2012-07-03 20:25:22 UTC
view on stackexchange narkive permalink

例如,如果存在目錄“ blob”,而我只是鍵入“ blob [return]”,那麼系統 cd s將進入我的blob目錄。

在Linux中(Ubuntu)我可以將 shopt -s autocd 添加到我的 .bashrc 文件中,但是在OS X上會出現錯誤: -bash:shopt:autocd:invalid外殼選項名稱

二 答案:
Lri
2012-07-03 22:00:14 UTC
view on stackexchange narkive permalink

autocd 已在bash 4.0中添加。您可以使用Homebrew安裝較新版本的bash,然後使用 chsh 更改默認的登錄shell:

  brew install bash; echo / usr / local / bin / bash | sudo tee -a / etc / shells; chsh -s / usr / local / bin / bash  

在打開新的登錄shell(或默認情況下,Terminal或iTerm 2中的選項卡)之後),則 echo $ BASH_VERSION 應該顯示類似 4.2.45(2)-release 的內容。

終端和iTerm 2可以通過以下方式打開新的shell作為登錄shell:默認情況下,因此bash讀取〜/ .bash_profile ,但不讀取〜/ .bashrc 。如果您不是從〜/ .bash_profile 或其他任何來源獲取〜/ .bashrc ,請在〜/中添加 shopt -s autocd .bash_profile 而不是〜/ .bashrc

好答案。 Bash 4也可以在MacPorts中使用:將sudo port install bash包含在步驟1中也可以。
我做了以上。我以bash 4.2.29結尾,並對/ etc / shells進行了更改,並進行了cssh,但沒有任何樂趣
-1
如果我直接運行命令/ usr / local / bin / bash,它會起作用-我得到v4.2,但是如何使我的默認shell用於新窗口?
@MichaelDurrant您的終端應用程序是否設置為在首選項中使用`/ usr / bin / login`或`login -fp $ USER`來打開?
接受,然後我添加了更改位置的屏幕截圖。
儘管它在tmux中不起作用,並且也不顯示帶有目錄和用戶名的PS1(?)提示符
@MichaelDurrant我從答案中刪除了屏幕截圖,因為Terminal和iTerm 2均應默認為打開登錄外殼。如果默認的shell是沒有/ login的/ usr / bin / local / bash,則不會加載.bash_profile。
[不接受]這不適用於我要設置的新Mac。
再次嘗試使用較新的bash,但甚至運行/ usr / local / bin / bash,然後bash --version在“ brew install bash”說“ 4.2.45已經安裝”後說3.2.51(1)。
如果路徑上的/ bin在/ usr / local / bin之前,則bash --version類似於/ bin / bash --version。試試`echo $ BASH_VERSION`。您是否將`shopt -s autocd`添加到`〜/ .bash_profile`或`〜/ .bashrc`中?
2017年再次遇到了這個問題。再次陷入舊版本。@user495470刪除了我的記錄,這對我確實很有幫助。我不在乎“應該”發生什麼。正因為如此,每次重新發現它時,我都會感到困惑。
ephsmith
2012-07-03 21:08:05 UTC
view on stackexchange narkive permalink

shopt -p 的輸出在這裡可以有所幫助。它顯示可設置選項的列表。可悲的是,在Lion上, autocd 不是其中之一(請參見下面的摘錄)。

編輯 上面的Lauri答案提供了一種解決方案,可用於更新您的Shell以使其包含 autocd

  $ shopt -pshopt -u cdable_varsshopt -u cdspellshopt -u checkhashshopt -s checkwinsizeshopt -s cmdhistshopt -u compat31shopt -u dotglobshopt -u execfailshopt -s expand_aliasesshopt -u extdebugshopt -u extglobshopt -u extglobshopt -u gnu_errfmtshopt -u histappendshopt -u histreeditshopt -u histverifyshopt -s hostcompleteshopt -u huponexitshopt -s Interactive_commentsshopt -u lithistshopt -s login_shellshopt -u mailwarnshopt -u no_empty_cmd_completionshopt -u nocaseglobshopshopt -u nocaseglobshopshopt -u nocaseglobshopshopt -u nocaseglobshopshopt u shift_verboseshopt -s sourcepathshopt -u xpg_echo  


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...