題 如何確定readline bash使用的版本?


如何確定我在bash會話中使用的readline版本?

我特別想知道因為我似乎有readline庫6.3,但是 set enable-bracketed-paste on 在我的 .inputrc 正在工作,即使該功能僅在readline 7.0中添加。

我在macOS 10.11上使用bash 4.4.0(與Fink一起安裝)。


3
2018-01-20 18:59


起源


根據 這個網站, bash 4.4用途 readline 7。 - AFH
osx / fink提供 ldd?如果是這樣 ldd /path/to/bash | grep readline 應該告訴你究竟是什麼libreadline加載。 - quixotic
在macOS上@quixotic吧 otool -L (隨開發人員工具一起提供)。但是我在bash上試過了,但它沒有列出readline的鏈接,只有ncurses,intl和iconv。所以我想知道如果bash靜態鏈接readline,這可以解釋為什麼它顯然使用7.0,即使我有6.3。 - asmeurer
@asmeurer bash在我的平台上動態鏈接,所以問題就變成了Fink如何打包它。 (假設你安裝了官方的Fink包。)你可以在他們的包db上獲得他們的源包和默認編譯選項。 pdb.finkproject.org/pdb - quixotic


答案:


不確定你是如何使用fink的,但是還有另一個macOS包管理器,它叫做自製軟件,可以找到 這裡 或 http://brew.sh 它允許您運行更新版本的程序,la BASH等。

要安裝自製軟件,只需將URL複製/粘貼到首選終端,然後運行該命令即可 brew install bash

我確實遇到了和你一樣的問題,並創建了一個inputrc文件並將其鏈接到 ~/.inputrc 從我的 dotfiles repo 我能夠防止自動運行shell的代碼片段。

完成所有操作後,請嘗試複製/粘貼 以下代碼段 在您的終端中,如果一切設置正確,則在按下回車鍵之前不應運行。

乾杯 克里斯


-2
2017-12-21 05:44



這並沒有真正回答這個問題(如何判斷什麼版本的readline bash正在使用)。是的,我知道自製軟件。因為各種原因,我更喜歡fink。 - asmeurer