这个bash read-n有什么问题?
我正在学习Bash,正在学习read命令。我认为-N和-N选项的区别在于-N会覆盖IFS,而-N不会。在下面的示例中,我希望var6采用“ijfz”的值,因为我认为空格将充当字段分隔符。 但它似乎有“ijfz e”的价值。该空间未用作字段分隔符这个bash read-n有什么问题?,bash,Bash,我正在学习Bash,正在学习read命令。我认为-N和-N选项的区别在于-N会覆盖IFS,而-N不会。在下面的示例中,我希望var6采用“ijfz”的值,因为我认为空格将充当字段分隔符。 但它似乎有“ijfz e”的价值。该空间未用作字段分隔符 printf "%s\n" "ijfz eszev enacht" | { read -n 6 var6 printf "%s\n" "$var6" } 我想看看$IFS是什么,但下面的printf命令对我了解不多: printf ":%s:\n" "
printf "%s\n" "ijfz eszev enacht" | {
read -n 6 var6
printf "%s\n" "$var6"
}
我想看看$IFS是什么,但下面的printf命令对我了解不多:
printf ":%s:\n" "$IFS"
给出以下输出
:
:
我不明白什么…?用分隔符表示使用选项
-d
。请看这一区别:
printf "%s\n" "ijfz eszev enacht" | { read -d ' ' -N 6 var6; printf "[%s]\n" "$var6"; }
[ijfz e]
printf "%s\n" "ijfz eszev enacht" | { read -d ' ' -n 6 var6; printf "[%s]\n" "$var6"; }
[ijfz]
-N
时,它忽略-d'
,并准确读取6个字符-n
时,它尊重-d'
并读取,直到读取到一个空格