동일한 명령에서 둘 이상의 바이너리를 호출해야 할 때 별칭을 작동시키려면 어떻게 해야 합니까?

동일한 명령에서 둘 이상의 바이너리를 호출해야 할 때 별칭을 작동시키려면 어떻게 해야 합니까?

두 개의 바이너리 파일이 있다고 가정해 보겠습니다.바이너리1그리고바이너리2.

각각에는 고유한 옵션 세트가 있습니다.옵션1그리고옵션2.

사용자는 다음 구조를 따르는 명령을 호출해야 합니다.

binary1 options1 binary2 options2

그러나 설정하고 싶습니다.옵션2나 자신을 확인하고 다음을 실행하게 하세요.

binary1 options1 alias

어디

alias='binary2 options2'

bash/tcsh에서 이 작업을 수행할 수 있는 방법이 있습니까? 저는 64비트 아키텍처 이상의 SLES 11 SP2에서 작업하고 있습니다.

답변1

바이너리1과 옵션1이 시작하려는 항목이 되어야 합니까? 그런 다음 "something" 함수를 정의합니다.

something () {
   options2="...." #you define them as you want, either here or from another source
   binary1="$1" ; shift
   "$binary1" "$@"
   binary2  $options2
}

(그리고 bash 로그인 파일에 정의되어 있습니다)

그리고 실행하게 하세요:

something binary1 options1

그렇게 하면 다음과 같은 옵션1에 열광할 수 있습니다.

something touch file1 file2 "file3 with extra spaces" file4

답변2

mpirun은 이미 알아냈을 수도 있으므로 별칭을 실행하는 것을 좋아하지 않습니다. 가장 좋은 방법은 실행 파일 주위에 래퍼를 만드는 것입니다. 따라서 다음을 파일에 넣으십시오(실행 가능하게 만드십시오).

#!/usr/intel/bin/tcsh -f
exec /full/path/to/dplace -s1 -c 0-$TOP_PROC $*

이 파일의 이름을 "dplace"로 지정하고 실제 dplace가 발견된 디렉토리보다 먼저 검색되는 디렉토리의 사용자 경로에 배치하면 대신 래퍼 스크립트가 투명하게 실행됩니다("rehash"를 기억하세요). 이것을 시도하고 있습니다).

TOP_PROC가 이미 환경에 정의되어 있다고 가정합니다.

관련 정보