为什么 readline 认为我按下了“d”键?

dew*_*s92 1 bash shell pipe readline named-pipes

我有两个脚本。test4.sh 调用 1.sh
\n我不\xe2\x80\x99不明白为什么 1.sh 的事情我按下 \xe2\x80\x9cd\xe2\x80\x9d 键。你能解释一下吗

\n

这是1.sh

\n
set -x\necho "Please enter some input: "\necho "enter $(echo $RANDOM)"\nsleep 2\nread input_variable\necho "You entered: $input_variable"\n
Run Code Online (Sandbox Code Playgroud)\n

这是test4.sh

\n
set -x\nset +e\nmkfifo p_in\nbash 1.sh p_in<0 | sed -e 's/^/1\\.sh:: /'  &\ncat - 1> p_in\n
Run Code Online (Sandbox Code Playgroud)\n

输出:

\n
pi@raspberrypi:~/tmp/lolttt $ bash test4.sh\n+ set +e\n+ mkfifo p_in\nmkfifo: cannot create fifo 'p_in': File exists\n+ bash 1.sh p_in\n+ cat -\n+ sed -e 's/^/1\\.sh:: /'\n+ echo 'Please enter some input: '\n1.sh:: Please enter some input:\n++ echo 23876\n+ echo 'enter 23876'\n1.sh:: enter 23876\n+ sleep 2\n+ read input_variable\n+ echo 'You entered: d'\n1.sh:: You entered: d\n
Run Code Online (Sandbox Code Playgroud)\n

如果我直接从 bash 运行 1.sh,就不会发生这种奇怪的行为。这种奇怪的行为只发生在 test4.sh 中

\n

请帮助?

\n

Kam*_*Cuk 6

0因为您的当前工​​作目录中有一个名为 content的文件d

bash 1.sh p_in<0- 等于bash 1.sh p_in <0- 运行带1.sh参数的命令p_in,并将名为重定向到标准输入的文件0

我想你想要bash 1.sh 0<p_in。左边是文件描述符。或者只是<p_in没有 0,默认输入是文件描述符 0。