我正在尝试理解shell脚本的一部分,这对我来说似乎非常混乱。
这是代码段。我的问题是:
a) <<-
做什么?是不是像标准表达式.我只知道重定向的>
、>>
和<
。
b) End
是什么意思?我假设从"n"到"somefilename.dat.summary"的所有值都是发送到脚本"collapse4"的某种输入,它的输出被重定向到/dev/null,我了解到这是我们发送不需要数据的地方。
/usr/can/bin/collapse4<<-End > /dev/null
n
n
1
9 14
y
1
26
8
30
8
1
23
3
1
n
n
y
n
n
somefilename.dat
somefilename.dat.summary
End
此命令将文本块发送到/usr/can/bin/collapse4
并将输出重定向到/dev/null
。
这个结构在这里称为文档。 End
是你"调用"要插入的文本的方式。完成后,您可以在新行的最开头使用相同的单词指示块的末尾。
但你可以随便称呼它。这将执行相同的操作:
/usr/can/bin/collapse4<<-HelloJustTesting > /dev/null
n
n
1
...
n
somefilename.dat
somefilename.dat.summary
HelloJustTesting
更多信息请参阅如何将此处文档写入 Bash 脚本中的文件?:
在 shell 脚本中,您可能希望使用缩进来制作代码 可读,但这可能会产生缩进的不良影响 "你在这里"文档中的文本。在这种情况下,请使用使用
<<-
(后跟短划线)以禁用前导制表符(请注意,要测试 这将需要用制表符替换前导空格 字符,因为我无法在此处打印实际的制表符。