使用 read 从 here-document 读取时如何保留前导空格?
How to preserve leading spaces whern reading from a here-document with read?
当使用以下
read -r -d '' VAR <<EOF
first line
second line
EOF
echo "$VAR"
第一行的前导空格被修剪:
first line
second line
如何回显第一行中的前导空格并得到以下内容?
first line
second line
请注意,这是一个简化的示例,我需要使用 here document
!
当您的 read
进入您指定为参数的变量时,IFS
中的前导字符和结束字符被视为分隔符,因此被删除。
第一个解决方案:暂时清空 IFS
IFS= read -r -d '' VAR <<EOF
first line
second line
EOF
printf '%s\n' "$VAR"
第二种解决方案(不可移植):不指定变量,Bash 将使用默认变量 REPLY
read -r -d '' <<EOF
first line
second line
EOF
printf '%s\n' "$REPLY"
当使用以下
read -r -d '' VAR <<EOF
first line
second line
EOF
echo "$VAR"
第一行的前导空格被修剪:
first line
second line
如何回显第一行中的前导空格并得到以下内容?
first line
second line
请注意,这是一个简化的示例,我需要使用 here document
!
当您的 read
进入您指定为参数的变量时,IFS
中的前导字符和结束字符被视为分隔符,因此被删除。
第一个解决方案:暂时清空 IFS
IFS= read -r -d '' VAR <<EOF
first line
second line
EOF
printf '%s\n' "$VAR"
第二种解决方案(不可移植):不指定变量,Bash 将使用默认变量 REPLY
read -r -d '' <<EOF
first line
second line
EOF
printf '%s\n' "$REPLY"