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