3

stdin を介して矢印キーを bash に送信しようとしています。

猫 | 猫 | /ビン/バッシュ

次に、「echo hi」と入力します => 「hi」がコンソールに表示されます (もちろん、引用符はありません)。次に、矢印キーを上に押します => ^[[コマンドが見つかりませんでした

stdin を介して矢印キーをプログラムに送信することは可能ですか?

私が尋ねている理由は、別のプログラムから bash を制御したいからです。矢印キーをbashに送りたい

4

3 に答える 3

5
于 2009-12-12T07:15:23.090 に答える
0

使用しないでくださいcat。readline サポートを有効にするオプションを指定して Bash 組み込みreadコマンドを使用します。-e

# version 1
while IFS="" read -r -e -d $'\n' line; do printf '%s\n' "$line"; done | /bin/bash

# version 2
#set -o pipefail
# kill 0: kill process group
(
while IFS="" read -r -e -d $'\n' line; do 
   #trap 'trap - EXIT HUP INT QUIT PIPE TERM ERR; kill $PPID' EXIT HUP INT QUIT PIPE TERM ERR 
   trap 'trap - EXIT HUP INT QUIT PIPE TERM ERR; kill 0' EXIT HUP INT QUIT PIPE TERM ERR 
   printf '%s\n' "$line" >> ~/.bash_history
   history -n
   printf '%s\n' "$line" 
done 
) | (trap 'trap - EXIT HUP INT QUIT PIPE TERM ERR; kill 0' EXIT HUP INT QUIT PIPE TERM ERR; /bin/bash)
#) | (trap 'trap - EXIT HUP INT QUIT PIPE TERM ERR; kill $PPID' EXIT HUP INT QUIT PIPE TERM ERR; /bin/bash)
于 2013-02-22T18:18:36.267 に答える
0

-iスイッチでbashを起動してみてください。

于 2009-11-26T22:52:49.510 に答える