簡體   English   中英

為什么 readline 認為我按下了“d”鍵?

[英]why does readline think I am pressing the "d" key?

我有兩個腳本。 test4.sh 調用 1.sh
我不明白為什么 1.sh 的東西我要按“d”鍵。 你能解釋一下嗎

這里是1.sh

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

這是 test4.sh

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

Output:

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 運行 1.sh,就不會發生這種奇怪的行為。這種奇怪的行為只發生在 test4.sh

請幫助?

因為在當前工作目錄中有一個名為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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM