두 브랜치에서 임의의 명령을 실행하는 Bash 기능

두 브랜치에서 임의의 명령을 실행하는 Bash 기능

여러 브랜치에서 임의의 명령을 실행하는 bash 함수를 작성하고 싶습니다.

compare_command () {
    branch2="$1"
    shift
    command="$@"
    echo $branch2
    echo $command
    # assume $@ is command and args
    $(command) 2>&1 | tee baseline.log
    git checkout "$branch2"
    $(command) 2>&1 | tee "$branch2".log
    git checkout -
}

compare_command master ls예를 들어, "명령을 찾을 수 없음: 1"로 실패하고 compare_command master ls -a, "명령을 찾을 수 없음: ls -a"로 실패합니다.

답변1

나는 당신이 bash에서 괄호가 어떻게 사용되는지 혼란스러워한다고 가정합니다.

compare_command () {
    branch2="$1"
    shift
    echo "$branch2"
    echo "$@"
    # assume $@ is command and args
    "$@" 2>&1 | tee baseline.log
    git checkout "$branch2"
    "$@" 2>&1 | tee "$branch2".log
    git checkout -
}

관련 정보