我正在尝试使用readbash 3.2读取文件,但read似乎将多个空格的任何实例转换为单个空格。
例如,下面的代码在“hello”和“there”之间有两个制表符,在“today”和“world”之间有三个空格:
while read -r LINE; do
echo $LINE
done <<< "hello there
today world"
Run Code Online (Sandbox Code Playgroud)
但是,当运行时,它输出的每组单词之间只有一个空格:
hello there
today world
Run Code Online (Sandbox Code Playgroud)
相反,我希望它输出保留空格的行,例如:
hello there
today world
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?如果不是阅读,那么还有别的吗?
打印时在变量周围加上引号。它被扩展然后分词,所以echo得到hello和there作为单独的参数。
echo "$LINE"
Run Code Online (Sandbox Code Playgroud)
或更好
printf '%s\n' "$LINE"
Run Code Online (Sandbox Code Playgroud)
将保留您的空白
所以这不是read改变你的空格,而是你稍后没有引用变量