셸에서 특정 명령이 실행될 때 두 번째 명령을 어떻게 트리거할 수 있나요?

셸에서 특정 명령이 실행될 때 두 번째 명령을 어떻게 트리거할 수 있나요?

내 문제를 예를 들어 설명하겠습니다.

나는 $ python manage.py어떤 행동을 하기 위해 달려갔다.

$ xyz사용자가 이전 명령을 실행할 때 다른 명령을 실행하고 싶습니다 .

그럼 이제부터 사용자가 실행할 때마다$ python manage.py

다음과 같이 실행되어야 합니다:

$ python manage.py && xyz

별칭을 만들까 생각했습니다. 그런데 별칭 변수 사이에 공백이 있으면 안 되나요?

답변1

호출 주위에 쉘 래퍼를 넣을 수 있습니다 python(넣거나 ...쉘에 따라 다름) .zshrc..bashrc

python () {
    if [ "$1" = manage.py ]; then
        command python manage.py && xyz
    else
        command python "$@"
    fi
}

manage.py하지만 대신 마지막에 실행하거나(Python 하위 프로세스 라이브러리 참조) 쉘 스크립트를 생성하는 것이 더 나을 것이라고 생각합니다 .xyz

관리.sh:

#! /bin/sh
python manage.py && xyz

관련 정보