读取单个字符,如何区分 null<EOF>和\n?
例如:
f() { read -rn 1 -p "Enter a character: " char &&
printf "\nYou entered '%s'\n" "$char"; }
Run Code Online (Sandbox Code Playgroud)
带有可打印字符:
$ f
Enter a character: x
You entered 'x'
Run Code Online (Sandbox Code Playgroud)
按下时Enter:
$ f
Enter a character:
You entered ''
Run Code Online (Sandbox Code Playgroud)
按Ctrl+ 时D:
$ f
Enter a character: ^D
You entered ''
$
Run Code Online (Sandbox Code Playgroud)
为什么在最后两种情况下输出相同?我如何区分它们?
在 POSIX shell 和 POSIX shell 中是否有不同的方法来做到这一点bash?