2011-09-09 16 views
1

を「-eを読んで、」新たな工夫と協力していないようです、私は"read -e"オプションを持っている場合、私は、予め充填された入力を編集することができますが、何のコマンド履歴が存在しない、と悪:私は今ここにひねりますprocess_line.shRlwrapは、やや一般的な質問への

rlwrap ./process_line.sh $INPUT 

を呼び出すコマンド履歴を実装しますコマンド履歴はrlwrap"read -e"オプションなしで提供することができますが、事前入力はしません(つまり、"read -i"は実際に何もしません)。

質問は、私が入力プリフィルと編集ANDコマンド履歴の両方を同時に持つことができるかどうかです。

ありがとうございます!

答えて

2

-eの読み取りをオフにします。その後、2つのreadline実装は衝突しません。

プロンプトを表示するには、-S "> "をrlwrapに渡すことができます。

+0

私が '-e'をオフにすると、入力編集が失われます。あなたが '-S'で何を意味するかわからない、有効なオプションではないようです(Cygwin、bashバージョン4.1.10) –

+0

rlwrapはライン編集を直接サポートします(rlwrapには-S引数があります。 ) –

+0

申し訳ありません、私のために '-S'は動作しません: ' rlwrap:エラー:不明なオプション - S 詳細については 'rlwrap --help'を試してください ' あなたはこのように見えるでしょうか? 'rlwrap -S $ INPUT。/ process_line.sh' –

1

このユースケースは、バージョン0.25以降のrlwrapマニュアルにあります。どのように正確にそれについて行くには、rlwrapバージョンのビットに依存します。

あなたはこのようにそれを行うrlwrap 0.37で

INPUT = $(rlwrap -o -S ">" -Pする$ INPUT猫)

このアプローチの利点は、すべての入力変数ができることです

cygwinのバージョン(0.24)は確かに古くなっていますが、rlwrapをコンパイルするのは難しいはずです。あなたが望むなら、静的にリンクされたバージョンを作成し(指示についてはINSTALLファイルを参照)、それをあなたのスクリプトとともに配布することができます。

+0

私はPythonでこれを実装するのを手助けするために、私は臆病になり、私の友人(実際に暮らしのためのプログラミングをしています)を得ました。これは移植性を助けるためのもので、これにGUIを貼り付ける可能性を追加しています。これはおそらく、スクリプトに準拠したrlwrapを配布するよりももっと複雑な解決策であることがわかりましたが、私はこれを趣味としてやっています私は気にしない!とにかくありがとう! –

関連する問題