cat <<-EOF
#lots of text
EOF
这种语法肯定可以简化许多行的管理,并且仅是一次对cat
的调用,而不是一堆echo
的调用。
但是使用<<-
是否安全?
有许多文本编辑器设置,这些设置可能会弄乱空格和制表符,并且很讨厌跟踪这些内容。 (便携性是一个问题)
仅使用<<
会使源代码看起来很呆板,没有缩进。
有没有更安全,更清洁的方法?
我做了一个小小的编辑,现在看来它并不是以任何观点为基础的。
答案 0 :(得分:1)
您应该意识到某些用户将其编辑器设置为自动将制表符转换为空格。因此,当您在同一个脚本上与多个用户一起工作时,为此设置一些基本规则非常重要,这很烦人,因为最终您将面临一天的tab-vs-spaces战争。此外,我经常认为制表符很邪恶。它们很好地用作字段分隔符,但是当可视化依赖于字段分隔符时,它们却很糟糕。一切都取决于定义制表符的位置,并且可以在编辑器之间,编辑器之间以及终端与终端之间更改。有时。制表符定义为8的倍数,有时是4的倍数。甚至还有Posix命令tabs
,您可以通过该命令以任意方式设置制表符
$ tabs 1,6,10,14,18,22,26,30,34,38,42,46,50,54,58,62,67
所以...标签是邪恶的!
我对您的建议是使用以下内容:
printf "%s\n" 'fantastic line1' \
'awesome line2' \
'amazing line3' \
'unrivaled line4'