【发布时间】:2019-08-14 15:04:08
【问题描述】:
-d '' 在 bash 读取命令中做了什么?该示例直接来自a previous SO。从 read 命令打印的用法来看,-d 选项定义了用于在一行中分割单词的分隔符。空分隔符有什么作用?
read -d '' sql << EOF
select c1, c2 from foo
where c1='something'
EOF
echo "$sql"
我通过试验知道变量被分配了多行。没有它,只分配第一行。根据用法文本似乎很难解释这种行为。
【问题讨论】:
-
空分隔符选项
-d ''用于NUL分隔输入。 -
NUL分隔输入是什么意思? Inserting'\0'into the string? -
是的
\0是 NUL 字符 -
anubhava,也许您可以通过一些详细说明将此 nul 分隔符解释放入答案中。这对我来说是新事物。猜想有些人也不知道。感谢您的快速回答。
-
@minghua,……嗯? bash 字符串 绝对不能 包含 NUL 文字,句号。
'\0'不是 NUL 文字;这只是一个转义序列,printf会变成一个。