명령줄에서 두 개의 파일 이름을 변수로 사용하는 bash 함수를 실행하세요.

명령줄에서 두 개의 파일 이름을 변수로 사용하는 bash 함수를 실행하세요.

file1.inp다음과 같은 두 개의 파일을 사용하여 Ubuntu 명령줄에서 Abaqus 작업을 실행하고 있습니다 file2.f.

abaqus job=file1 user=file2.f

나는 종종 다른 파일로 이 작업을 수행하므로 더 쉽게 만들고 싶습니다.

myfunc file1 file2.f

그 중에는 파일 이름을 얻고 명령을 실행하는 함수가 myfunc있습니다 .bashabaqusabaqus job=file1 user=file2.f

이 문제를 해결하는 데 도움을 주시면 감사하겠습니다.

답변1

myfunc () {
   abaqus job="$1" user="$2"
}

이 호출은 abacus주어진 함수의 두 인수로 구성된 인수로 이루어집니다.

일부 오류 검사를 통해(올바른 개수의 인수가 전달되었는지 확인):

myfunc () {
   if [ "$#" -ne 2 ]; then
       printf '%s: Expecting 2 arguments, got %s\n' "${FUNCNAME[0]}" "$#" >&2
       return 1
   fi

   abaqus job="$1" user="$2"
}

함수 이름을 지정할 수도 있지만 abaqus반드시 호출해야 합니다.실제 abacus명령하다

command abaqus job="$1" user="$2"

함수 내부에서는 무한 재귀가 발생하지 않습니다.

관련 정보