在 shell 脚本中'End'命令



我正在尝试理解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 脚本中,您可能希望使用缩进来制作代码 可读,但这可能会产生缩进的不良影响 "你在这里"文档中的文本。在这种情况下,请使用使用<<- (后跟短划线)以禁用前导制表符(请注意,要测试 这将需要用制表符替换前导空格 字符,因为我无法在此处打印实际的制表符。

相关内容

  • 没有找到相关文章

最新更新