3

我正在尝试通过标准输入向 bash 发送箭头键:

猫 | /bin/bash

然后我输入“echo hi”=>“hi”出现在控制台上(当然没有引号)然后我按向上箭头键 => ^[[A command not found 出现

是否可以通过 stdin 向程序发送箭头键?

我问的原因是:我想从另一个程序控制 bash。我想向 bash 发送箭头键

4

3 回答 3

5
于 2009-12-12T07:15:23.090 回答
0

尝试使用-i开关启动 bash。

于 2009-11-26T22:52:49.510 回答
0

不要使用cat. 使用带有选项的 Bash 内置read命令-e来启用 readline 支持。

# 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 回答