GNU/Linux >> Linux の 問題 >  >> Linux

Bash でシミュレートされたキーストロークを送信する

あなたは xdotool を探しています。

コマンド例に相当する xdotool のコマンドは次のとおりです。

xdotool key 1 Return
xdotool keydown Alt key a keyup Alt

テキストをプログラムの stdin にフィードするには、パイプやリダイレクトを使用します:

echo 1 | myprogram

(echo "First line"
 echo "Second line") | myprogram

myprogram <<EOF
First line
Second line
EOF

インタラクティブな CLI プログラムの場合 (しない フルターミナルのもの)、名前付きパイプまたはコプロセスを一種の貧弱な expect として使用することが可能です (Tcl であるため除外しました):

mkfifo in out
myprogram <in >out &
echo "First line" >in
read -r reply <out

mkfifo in out
myprogram <in >out &
exec {infd}>in {outfd}<out
echo "First line" >&$infd
read -r reply <&$outfd

coproc foo { myprogram; }
echo "First line" >&${foo[1]}
read -r reply <&${foo[0]}

(出力パイプから読み取るときは注意してください。例:head -1 <out 1 行だけを読み取るのではなく、1 つの完全な 4k ブロックをバッファリングし、1 行を出力して、残りを破棄します。)


Linux
  1. バンをエコーする方法!?

  2. &&および||後のBashラインの継続文書化されていますか?

  3. Bash Echoコマンドライン自体で実行されるコマンドライン(スクリプトではない)?

  1. Bashでのケースステートメントの使用

  2. Bashスクリプトで1行ずつ読む

  3. bash スクリプト ループ内の cat ステートメントの出力を出力する

  1. Bash のリストに変数が存在するかどうかを確認する

  2. bash の改行でテキストをエコーする

  3. コマンド出力に改行を追加する