shシェルで "bind"コマンドを操作する方法

shシェルで

sh シェルを使用するとき、次のスクリプトをどのように実行しますか?

#!/bin/bash

bind '^[[3'=prefix-2
bind '^[[3~'=delete-char-forward
bind '^[[1'=prefix-2
bind '^[[1~'=beginning-of-line
bind '^[[4'=prefix-2
bind '^[[4~'=end-of-line

shにバインド

ベストアンサー1

bindsh コマンドではなく bash コマンドです。 Bashを使用しないと、このbindコマンドは機能しません。

プラットフォームに応じて、shこれはいくつかのシェルのうちの1つです。彼らは皆共通コアスクリプトのために。sh特にPlainには便利なインタラクティブ機能はほとんどありませんsh

一部のシステムでは、shbash(呼び出し時に互換モードで実行sh)はコマンドライン編集にreadlineライブラリを使用し、キーバインディングをデフォルトでサポートしていますbind。他のシステムは、スクリプトをより速く実行するダッシュやkshなどのより効率的なシェルを使用します。まともなコマンドラインインターフェイスが必要な場合sh

作成したスクリプトは実行時には効果がありません(bind非対話型シェルでコマンドが意味がないという警告を出力することを除く)。キーバインディング定義のみを含むファイルは便利なスタンドアロン実行ファイルにすることはできません。だからトップシェバンは役に立たない。

おすすめ記事