Es gibt keine einfache Möglichkeit, eine Syntaxhervorhebung in GNU Bash (oder GNU Readline) zu erhalten, aber es ist grundsätzlich möglich, einen eigenen Zeileneditor in Bash-Skripten zu implementieren, indem alle Benutzereingaben mit dem eingebauten Befehl an Shell-Funktionen gebunden werden bind -x 'BYTE: SHELL-COMMAND'
. Es ist natürlich möglich, das Feature der Syntaxhervorhebung in Ihren eigenen Zeileneditor zu integrieren.
Tatsächlich habe ich einen Zeileneditor ble.sh
mit Funktionen wie Syntaxhervorhebung und automatischen Vorschlägen implementiert . Es unterstützt Bash 3.0-5.0. Da es in (fast) reinen Bash-Skripten geschrieben ist, können Sie nur source
das Skript in ~/.bashrc
. Hier ist ein Beispiel für die Einrichtung ble.sh
in bashrc ( Details finden Sie in der README- Datei ):
$ git clone https://github.com/akinomyoga/ble.sh.git
$ cd ble.sh
$ make
$ make INSDIR="$HOME/.local/share/blesh" install
# bashrc
# Add the following line at the beginning of bashrc
[[ $- == *i* ]] &&
source "$HOME/.local/share/blesh/ble.sh" --attach=none
# ... other bashrc settings ...
# Add the following line at the end of bashrc
((_ble_bash)) && ble-attach
Hinweis : Ich weiß, dass das Beantworten von Fragen mit Links zu eigenen Produkten manchmal als Eigenwerbung und nicht wünschenswert angesehen wird. Daher habe ich auf die Beantwortung dieser Frage verzichtet. Es gab jedoch keine anderen Lösungen, die nicht lange auftauchten, und auch diese Frage hat viele Ansichten (was ihre erhebliche Nachfrage widerspiegelt). Also habe ich beschlossen, diese Frage heute zu beantworten. Unter Bezugnahme auf die folgenden Meta-Fragen / Antworten habe ich die Idee zuerst beschrieben und als Beispiel für die Implementierung einen Link zu meinem Projekt bereitgestellt.
Ja, ich muss zugeben, dass dies eigentlich Eigenwerbung ist , aber ich glaube, dass dies Menschen hilft, die das Feature wollen. Wenn es Probleme gibt, würde ich mich freuen, wenn Sie mir dies durch Kommentare mitteilen könnten.