在 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。

相關內容