相关疑难解决方法(0)

shell:读取:区分 EOF 和换行符

读取单个字符,如何区分 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

shell bash posix

8
推荐指数
1
解决办法
6420
查看次数

标签 统计

bash ×1

posix ×1

shell ×1