什么时候有人会选择使用限制字符串 (

什么时候有人会选择使用限制字符串 (

The - option to mark a here document limit string (<<-LimitString) will suppress leading tabs (but not spaces) in the output.

我想知道为什么有人在使用“此处”方法处理命令时想要删除前导选项卡。是关于输出的可读性,还是关于清理输出(如果我们想将其传递给其他东西)?

答案1

这是关于源代码的可读性。使用<<-,您可以编写:

foo() {
    cat <<-EOF
        hello
        EOF
    echo do something else
}

代替

foo() {
    cat <<-EOF
hello
EOF
    echo do something else
}

给出更符合逻辑的缩进。

(请注意,SE 在帖子的渲染视图中将制表符显示为空格,因此您必须想象四个空格的块中有制表符。或者复制并粘贴从源码来看, 如果你喜欢;它应该给内容带来更少的破坏。)

我认为短语“限制字符串”指的是此处文档的结束分隔符,这是您总是拥有的东西。额外更改的是选项卡的处理-。另外,<<<是非标准的此处字符串,而不是此处文档。

相关内容