我正在尝试理解一些对我来说非常混乱的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
答案 0 :(得分:2)
此命令向/usr/can/bin/collapse4
发送一个文本块,并将输出重定向到/dev/null
。
此结构在此处称为doc。 End
是您“调用”要插入的文本的方式。完成后,在新行的最开头用相同的单词指示块的结尾。
但你可以称之为无论如何。这样做也是如此:
/usr/can/bin/collapse4<<-HelloJustTesting > /dev/null
n
n
1
...
n
somefilename.dat
somefilename.dat.summary
HelloJustTesting
How can I write a here doc to a file in Bash script?中的更多信息:
在shell脚本中,您可能希望使用缩进来生成代码 可读,但这会产生不良的缩进效果 您在此处的文档中的文字。在这种情况下,请使用
<<-
(后跟短划线)禁用前导标签(注意要测试的标签) 这将需要用选项卡替换前导空格 字符,因为我无法在此处打印实际的制表符。)