셸에서 워크플로 자동화

셸에서 워크플로 자동화

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

이제 쉘 스크립트가 생겼습니다. 실행 가능하게 만드세요:

chmod +x workflow.sh

이제 다음 명령처럼 실행할 수 있습니다.

./workflow.sh

워크플로를 호출하는 것만으로 각 명령을 순서대로 실행합니다.

당신은 이제 초보 시스템 프로그래머입니다. 거기에서만 올라갈 수 있습니다.

업데이트

지정하려면변화변경해야 할 때마다 스크립트를 편집할 필요 없이:

git commit -m "changes"

읽다:

git commit -m "$1"

그러면 합격할 수 있어요변화명령줄 인수로:

./workflow "Describe changes made"

또 다른 유용한 도구는 별칭과 PATH. 특수 디렉토리(예 ~/bin: )를 만들고 여기에 모든 스크립트를 넣을 수 있으며, 이 디렉토리를 PATH변수에 추가하면 스크립트를 시작할 때마다 스크립트의 전체 경로를 입력할 필요가 없습니다. 별칭이 있는 경우 각 스크립트마다 별칭을 만들어야 하지만 때로는 별칭에 다른 실행 매개변수를 지정할 수 있기 때문에 별칭이 더 편할 수도 있습니다.

답변2

Python 유틸리티를 사용하여 코드를 구성할 수 있습니다.https://wiki.python.org/moin/FlowBasedProgramming

위에서 언급되지 않았지만 여전히 유망한 또 다른 패키지는 Snakemake입니다.

관련 정보