Bourne ShellのTABオートコンプリート

Bourne ShellのTABオートコンプリート

ファイル名、コマンドなどを自動補完するためにTabキーを使用する方法がわかりません。

私はUnixシリーズシステム(OS / 390)を使用していますが、sh(BASHではなくBourneシェル)では動作しますが、他のシェル(tcshなど)では動作しない複数のスクリプトに依存しているため、シェルを切り替えることはできません。私は通常、 bash をローカルで実行する Ubuntu GNOME ターミナルから ssh または telnet を介してシステムに接続します。他の人はWindows XPコマンドプロンプトでTelnetを介してOS / 390システムに接続し、「set -o emacs」を実行した後にTABキーを使用して自動補完することができました。 「set -o emacs」を実行すると、一部の適切な機能が表示されます(たとえば、Ctrl-pを押して履歴に戻る)が、オートコンプリート機能は提供されません。

私は「set -o vi」オプションを知っていますが、「ESC-*」などを使用することは私にとって魅力的ではありません。なぜなら、他の人には単純なTABキーが機能していることを知っているからです。

Ubuntu、GNOME Terminal、bash、またはsshは、Telnetを実行しているWindows XPのコマンドプロンプトとは異なるタブ文字を送信しますか?

オートコンプリートタブを取得できませんが、同じリモートシステムで同じシェルを実行している誰かが取得できる理由を知っている人はいますか?

有効にするにはどうすればよいですか?タブオートコンプリート

答え1

(正確な質問には答えませんが、解決策はたくさんあります。)

スクリプトシェルを対話型シェルと一致させる必要はありません。 (たとえば、ほとんどの(t)cshまたはzshユーザーはshスクリプトを作成します)。 Bourneシェル(zsh、bash、tcsh)よりも優れた対話型シェルがある場合、またはインストールできる場合はそれを使用してください。それ以外の場合でも、Bourne シェルよりもインタラクティブな機能が少し優れている ksh があることを確認してください。

echo ' CtrlEnter + Tabキーで送信された文字を確認できますV Tab ' | od -t x1 Enter0000000 09 0a(つまり、位置0、2文字、タブ、改行)が予想される出力です。私はこれが問題になることを望んでいません。

快適な環境が得られない場合は、可能な場合はいつでもローカルコンピュータを使用して対話して、リモートでより多くの作業を実行できます。これには長所と短所があります。

  • Linux(またはWindows以外のOSXを含む他のほとんどのUnix)では、次のものを使用できます。sshfsリモートファイルシステムにアクセスします。
  • Emacsでは、以下を使用してリモートファイルを簡単に閲覧できます。徒歩旅行者(開いたら/os390hostname:/path/on/remote/machine完了です。)また使用できますエシャーリモートシェルインタフェース(Emacs組み込みシェル)を取得します。リモートディレクトリ(cd /os390hostname:/path/on/remote/machine)に変更すると、起動する外部コマンドがリモートシステムで実行されます。 rootでコマンドを実行する必要がある場合、Tramp(およびそれに基づくEshell)は次のことができます。suまたはsudoでsshを使用する

答え2

問題が発生してエラーメッセージが表示されない場合は、ksh派生製品をset -o emacs使用しない可能性があります。bourne shell

KornシェルはESCを使用してオートコンプリートします。試してみましたか?

注:履歴エディタとファイル名補完機能を備えたBourne Shellを使用したい場合は、次のポータブルBourne Shellを試すことができます。

http://sourceforge.net/projects/schilytools/files/

これはsbrk()からmalloc()に変換されたBourne Shellなので、UNIX以外の環境でも実行できます。

移植プロセス中にまだいくつかの問題がある可能性があります。

  • OS / 390環境でEBCDICを使用している場合は、ctype *ファイルにいくつかの作業が必要です。

  • あなたの環境がfork()またはOpenVMSに似たvfork()エミュレーションをサポートしていない場合、数日間の努力なしにコンパイルして実行することはできません。

バラよりhttp://schillix.sourceforge.net/man/man1/bosh.1.htmlクイックチェック機能。

関連情報