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 键。你能解释一下吗
这是1.sh
\nset -x\necho "Please enter some input: "\necho "enter $(echo $RANDOM)"\nsleep 2\nread input_variable\necho "You entered: $input_variable"\nRun Code Online (Sandbox Code Playgroud)\n这是test4.sh
\nset -x\nset +e\nmkfifo p_in\nbash 1.sh p_in<0 | sed -e 's/^/1\\.sh:: /' &\ncat - 1> p_in\nRun Code Online (Sandbox Code Playgroud)\n输出:
\npi@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\nRun Code Online (Sandbox Code Playgroud)\n如果我直接从 bash 运行 1.sh,就不会发生这种奇怪的行为。这种奇怪的行为只发生在 test4.sh 中
\n请帮助?
\n0因为您的当前工作目录中有一个名为 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。