快速开始
使用 Bpipe 的第一步
安装
首先确保已经安装了Bpipe,bpipe -h
可以显示帮助信息表明已经安装成功。
# 安装java
# 安装 bpipe
wget https://github.com/ssadedin/bpipe/releases/download/0.9.11/bpipe-0.9.11.tar.gz
tar xzvf bpipe-0.9.11.tar.gz
vim ~/.bashrc #将bpipe/bin加入环境目录中
Hello World
Bpipe非常容易上手,按照下面的步骤制作您的第一个管道。
将下面内容输入文件中并将其另存为helloworld.pipe:
hello = {
exec "echo Hello"
}
world = {
exec "echo World"
}
Bpipe.run { hello + world }
然后输入:bpipe run helloworld.pipe
解释说明
上面的脚本有几个部分。前3行声明了一个名为“hello”的阶段:
hello = {
exec "echo Hello"
}
这个阶段的bash脚本放在双引号中 - 一个简单的“打印”:echo Hello
。
然后使用名为“exec”的Bpipe命令执行此操作。exec语句将命令传递给bash shell
,以便在后台执行。在执行命令之前,它会将执行日志记录到一个文件中,以便您可以查询流程何时开始和完成。它还捕获命令的标准输出和错误输出,并将其记录在流程日志文件中。如果命令失败,它将中止脚本。可以直接通过Bpipe得到这些内容,而不用通过 bash shell执行命令。
“world”阶段与“hello”阶段完全相同,所以下一个有趣的部分是:
Bpipe.run { hello + world }
花括号中的"hello + world" 是使用“+”操作符管道将两个阶段连接在一起。然后将此流程传递给 Bpipe运行。如果没有此语句,您的Bpipe脚本将只是定义流程的不同阶段而不会运行它们。您可能想知道为什么要这样做,随着您流程的发展,您会意识到这实际上是Bpipe的一个非常重要的功能。因为随着时间的推移,您将构建一个可以混用、符合的和重用的流程阶段库,组合不同阶段就可以创建满足特定项目需求的流程,而无需更改每个阶段的定义。
提示:由于上面的任务使用了双引号,您可能想知道如果要运行的命令本身要用双引号会发生什么。对于这种情况(以及许多其他情况),您可以在语句周围使用三重引号,如下所示:
hello = {
exec """
echo "hello"
"""
}
当然,这个特殊的管道非常无聊,因为它没有输入,除了显示消息之外,它不会产生任何输出。要了解Bpipe如何管理输入和输出,请查看本教程的下一部分: 具有输入和输出的示例