2017-02-06 1 views
-1

특정 바이너리 파일을 호출하고 별칭을 사용하여 다른 문자열을 가리키는 많은 래퍼 스크립트를 만들 수 있습니다.exec 시스템 호출에서 alias 명령 실행

exec 시스템 호출에서 별칭 문자열을 호출해야합니다.

af45sp01> alias | grep bulk 
bulkactivation=wrap_alias=''\''bulkactivation 1'\'' /iscp/node/bin/isnm_wrapper /iscp/space/scr/issp_bulk_activation' 

char *pgm_name = "bulkactivation"; 
     execl((char*)(const char*)path_name, 
      (char*)(const char*)pgm_name,0); 

위 execl 함수 시스템 호출이 실패 : 우리가 간부 호출에 직접 해당 문자열을 실행하면

, 시스템 호출은

예를 실패합니다. 나는 그것이 PATH에서 별칭 문자열을 찾을 수 없다고 생각하며 예상된다. 이 문제에서 벗어나는 방법 ??

+3

별칭은 쉘 구성입니다. bash 별명을 실행하려면, 실행되는 프로그램은'bash -c'이어야합니다. – StoryTeller

+0

'exec'을 사용하려면 별명을 확장하고 별명이 별명 인 기본 명령을 실행해야합니다. – Ben

+1

비대화 형 쉘에서 별칭 이름을 확장하려면 특별히 'bash'를 지시해야합니다. 또한 별칭에 의존하는 것이 보안 위협 일 수 있습니다. http://unix.stackexchange.com/a/1498 –

답변

-2

옵션으로 명령과 함께 ksh/bash를 사용하면 매력처럼 작동합니다. 감사합니다