在 shell 中自动化工作流程

在 shell 中自动化工作流程

从 GUI 界面开始,我终于明白了将所有内容都以文本形式传输的强大功能,但我还不知道如何使用所有这些功能。

我意识到特定项目的工作流程是这样的......

# compile repo 1
cd ~/workspace/repo1
make -B
# deploys compiled code into repo2
make deploy

# commit repo 1
cd ~/workspace/repo1
git add .
git commit -m "changes"
git push origin master

# commit repo 2
cd ~/workspace/repo2
git add .
git commit -m "changes"
git push origin master

我的问题不是如何实现这一点,而是什么是正确的工具?阅读周围的内容似乎我需要 Bash 脚本,但我想从专家那里了解。

答案1

通过将所有内容都输入到一个地方,您已经有了一个很好的开始。

将所有内容复制到一个文本文件中(例如,,workflow.sh但名称并不重要),然后将其放入在文件的第一行:

#!/bin/sh

您现在已经有了一个 shell 脚本。使其可执行:

chmod +x workflow.sh

现在您可以像命令一样运行它:

./workflow.sh

只需调用工作流程,它就会按顺序执行每个命令。

您现在是一名初学者系统程序员。你只能从那里上去。

更新

指定变化无需每次更改时都编辑脚本:

git commit -m "changes"

读书:

git commit -m "$1"

然后你可以通过变化作为命令行参数:

./workflow "Describe changes made"

另一个有用的工具是别名和PATH.您可以创建一个特殊目录(例如~/bin)并将所有脚本放在那里,将此目录添加到您的PATH变量中,并且您不需要每次启动脚本时都键入脚本的完整路径。如果使用别名,您需要为每个脚本创建别名,但有时别名更方便,因为您可以在其中指定不同的运行参数。

答案2

您可以使用 python utils 组织代码:https://wiki.python.org/moin/FlowBasedProgramming

另一个上面没有提到但仍然很有前途的软件包是 Snakemake。

相关内容