0
#!/bin/bash
while [ 1 ]
do
read -s -n 1 key
echo -n $key && echo -n $key >> log
done
我保存這個殼爲run.sh和使用「./run.sh」 如果我輸入的字符非常快,在控制檯上 串,有時是從日誌文件中的字符串不同的運行它。爲什麼有些命令在Linux shell中被跳過?
./run.sh
dhassudhasfuadhasfuash
ctrl+c
cat log
dhasudhasfuadhasfuash
如何解釋?
'-n 1'使行被讀取無緩衝。我想如果你不把每個字符單獨寫到日誌文件中,而是把它們收集到一個變量中,並且如果你輸入完畢,把它們寫入日誌文件,你不會再有丟失的字符,或者只是非常少見。 – user1934428
你可以在你的電腦上試試看這個奇怪的東西 – luchy0120
你試過我的建議嗎? – user1934428