Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在bash中读取空间-read不会_Bash_Character_Whitespace - Fatal编程技术网

如何在bash中读取空间-read不会

如何在bash中读取空间-read不会,bash,character,whitespace,Bash,Character,Whitespace,许多人已经展示了在bash中阅读一行时如何保留空格。但我有一个基于字符的算法,它需要分别处理每个字符的每一端,包括空格。不幸的是,我无法让bash read从输入中读取单个空格字符 读取时-r-n1c;做 printf“[%c]”“$c” 完成只需设置输入字段分隔符(a),使其不会将空格(或任何字符)视为分隔符,即可: printf 'mark spitz' | while IFS="" read -r -n 1 c; do printf "[%c]" "$c" done echo 这

许多人已经展示了在bash中阅读一行时如何保留空格。但我有一个基于字符的算法,它需要分别处理每个字符的每一端,包括空格。不幸的是,我无法让bash read从输入中读取单个空格字符

读取时-r-n1c;做
printf“[%c]”“$c”

完成只需设置输入字段分隔符(a),使其不会将空格(或任何字符)视为分隔符,即可:

printf 'mark spitz' | while IFS="" read -r -n 1 c; do
    printf "[%c]" "$c"
done
echo
这给了你:

[m][a][r][k][ ][s][p][i][t][z]

你会注意到我也稍微改变了你在那里获取输入的方式,
Wow。我肯定有第二个问题,没有在赋值或输出中引用变量(空格是我的bash敌人),当我尝试此修复时,由于第二个问题的错误,它失败了。显示将测试减少到最低限度的价值-而不是在大型程序中尝试修复!顺便说一句,在读取完成时使用