下面的命令有什么作用?特别是我不明白-
在输入重定向中的作用。
cat <<-EOF | command $argument
first option
second option
EOF
-
输入重定向中是否强制有?
答案1
从man bash
:
如果重定向运算符为 <<-,则所有前导制表符将从输入行和包含定界符的行中去除。这允许 shell 脚本中的此处文档以自然的方式缩进。
$ cat <<-EOF
foo
bar
EOF
foo
bar
答案2
关于您关于此处文档的问题,我想在上面克里斯的回答中添加一些内容
cat - filename <<-EOF
foo
bar
EOF
如果您注意到上面的代码;有2个-
。两者都有不同的目的 1)-EOF
截断分隔符中的前导制表符。
2) cat - filename
:基本上打印第一个标准输入内容(直到找到分隔符)+文件名内容。 cat 专门提供了这个-
来控制标准输入和文件内容的顺序。在上述情况下,更改命令cat filename -
将打印文件名和标准输入内容(直到找到分隔符)