Grid Engine qsub 작업 파일을 여러 프로그램 및 입력 파일 이름으로 일반화

Grid Engine qsub 작업 파일을 여러 프로그램 및 입력 파일 이름으로 일반화

Linux 클러스터에서 Grid Engine을 사용하고 있습니다. 저는 다양한 프로그램과 다양한 입력 파일을 사용하여 많은 작업을 실행하고 있습니다. 각 프로그램 및 입력 파일 쌍에 대해 여러 개의 특정 작업 스크립트를 만들고 싶지 않습니다. 대신 프로그램 이름과 입력 파일만 지정할 수 있기를 원합니다 qsub.

그러므로 나는 사용할 수 있습니다qsub job.sh <programNameAndLocation> <inputFileName>

두 개의 매개변수가 필요 job.sh합니다. 이것은 훌륭하게 작동합니다. 그러나 또 다른 문제가 있습니다. 내 프로그램은 작업을 제출할 때마다 입력하고 싶지 않은 매우 긴 디렉토리에 있으므로 별칭이 확실한 선택입니다.

그래서 나는 다음과 같은 것을하고 싶습니다qsub job.sh <programNameAndLocationAlias> <inputFileName>

처음에 별칭을 설정했지만 .bashrc오류가 발생했습니다.<programNameAndLocationAlias>: command not found

그래서 별칭을 submit.sh. 하지만 같은 오류가 발생했습니다.

qsub job.sh $1 $2명령이 별칭도 허용하도록 만드는 방법에 대한 아이디어가 있습니까?

답변1

해시 함수와 조회 함수는 다음과 같습니다.

#!/usr/bin/env bash

declare -A proggies

# "aliases" and then the path said should expand to
proggies[foo]=/some/big/long/stupid/path/foo
proggies[bar]=/some/big/long/stupid/path/bar

function qrunner {
    local exe
    exe=${proggies[$1]}
    if [[ -z "$exe" ]]; then
        echo >&2 "no mapping for '$1'"
        return 1
    fi
    # echo here is for debugging, remove when ready to
    # really break things
    echo qsub job.sh "$exe" "$2"
}

# positive test
qrunner bar filename
echo $?

# and also a negative one
qrunner nope filename
echo $?

관련 정보