shell 为什么readline认为我按的是“d”键?

8cdiaqws  于 2023-01-31  发布在  Shell
关注(0)|答案(1)|浏览(115)

我有两个脚本。www.example.com调用www.example.com test4.sh calls 1.sh
我不明白为什么www.example.com的东西我按"d"键。你能解释一下吗1.sh things I am pressing the "d" key. Can you explain please
这里是www.example.com1.sh

set -x
echo "Please enter some input: "
echo "enter $(echo $RANDOM)"
sleep 2
read input_variable
echo "You entered: $input_variable"

这里是www.example.comtest4.sh

set -x
set +e
mkfifo p_in
bash 1.sh p_in<0 | sed -e 's/^/1\.sh:: /'  &
cat - 1> p_in

输出:

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

如果直接从bash运行www.example.com,则不会发生这种奇怪的行为。 1.sh directly from bash. This weird behaviour only happens from test4.sh
帮帮忙好吗?

nnt7mjpx

nnt7mjpx1#

因为在当前工作目录中有一个名为0的文件,其内容为d
bash 1.sh p_in<0-等于bash 1.sh p_in <0-运行带有参数p_in的命令1.sh,并将名为0文件重定向到标准输入。
我想你需要bash 1.sh 0<p_in。左边是文件描述符。或者只是<p_in没有0,默认输入是文件描述符0。

相关问题