2017-11-07 14 views
0

ユーザが入力したように、コマンドラインに文字列を挿入できるbashスクリプト/関数を書いてみたいのですか?例えばユーザが入力したとおりにコマンドラインにコマンドを入力してください

、機能の魔法を定義します。

function magic() { 
    echo "ls -a" > 'whatever output that would do the trick' 
} 

は、次にbashのタイプに:

prompt> magic 

・プレス入力して、直接コマンドラインに注入された結果を取得、変更する準備ができたりして実行しますEnterキー:

prompt> ls -a 

単純に、これはalias-expそして。

誰でもこれを達成する方法について考えていますか?

答えて

1

ここで自動応答します。より多くの検索といくつかのテストの後、私はついにこの "シンプルな"スクリプトでこのトリックを達成しました:

マジック!

0

あなたは似た何かをサポートするために、バッシュのprogrammable completion機能を使用して試みることができる:

prompt> magic<tab> 

私はあなたが典型的なものであっても、何か他のものを使用してコマンドラインを置き換えることになるmagicのためのタブ補完スクリプトを書くことができると思いますキャレットの左側のテキストを変更することなく、より多くの単語を追加することができます。

+0

ありがとうございます。これは正確には質問された質問の答えではありませんので、誰かが別の解決策を持っている場合は、私はあなたの答えを受け入れる前にもう少し待っています。 – jseguillon

+0

また、私はこの記事で説明されている別の方法を見つけました:https://unix.stackexchange.com/questions/251155/using-bind-to-read-the-current-command-line このバインドソリューションで私は書くことができました: '関数マジック(){ READLINE_LINE = "lsの-a" READLINE_POINT = 5 } バインド-x ' "\ EW": "魔法"'' しかし、これで、私は方法がわかりませんマジック関数の現在のバッファを読み込み、既に何も入力されていない場合のみREADLINEを変更します。誰でも知っていますか? – jseguillon

関連する問題