Bashコマンドラインバッファにテキストを入れる

Bashコマンドラインバッファにテキストを入れる

プログラム的にテキストのフラグメントをbashのコマンドラインバッファに入れ、編集のために読み、コマンドとして使用したいと思います。

私が期待したのは、read -iコマンドに似たものでした。

-i textreadline を使用して行を読み取ると、編集が開始される前にテキストが編集バッファに配置されます。

編集する:そしてプログラム的に私の言葉は欲しいです。これをスクリプトに入れる、スクリプトを起動し、コマンドバッファを準備するか、コマンド履歴を変更します(一部の質問でわかるように)。

ベストアンサー1

奇妙な方法が見つかりました。fzfの例ページ。これはbash 4.3とPerl 5.18で動作します。

writecmd () { 
  perl -e 'ioctl STDOUT, 0x5412, $_ for split //, do{ chomp($_ = <>); $_ }' ; 
}

# Example usage
echo 'my test cmd' | writecmd

コマンドを標準出力に出力しますが、コマンドバッファにもコピーします。コマンドを直接実行したい場合は、リンクされたページに例もあります。

おすすめ記事