krb 명령이 ksh 스크립트에서 작동하지 않습니다.

krb 명령이 ksh 스크립트에서 작동하지 않습니다.

RedHat 7에서 Kerberos 티켓을 얻기 위해 다음 명령을 실행할 때:

krb my_user

다음을 다시 보냅니다.

Ticket for 'my_user' is valid until 08:36 (28/01)

이제 스크립트에서 이 명령을 실행해야 합니다. 디렉터리를 변경하지 않고 다음 내용으로 ksh 스크립트를 만듭니다.

#!/bin/ksh
krb my_user

스크립트를 실행하면 다음 오류가 발생합니다.

./script.ksh[2]: krb: not found [No such file or directory]

krb명령줄에서 직접 명령을 실행하면 해당 명령을 어디서 찾을 수 있는지 알 수 없습니다.

나열하면 krb명령이 별칭에 없습니다.

를 실행하면 locate krb방금 호출된 항목이 반환되지 않습니다 krb.

내가 실행하면 which krb말한다

/usr/bin/which: no krb in (/usr/java/default/bin:/bin:/usr/bin:/usr/local/bin:/bin)

이 krb 명령이 내 스크립트에서 작동하도록 하려면 어떻게 해야 합니까?

답변1

쉘 프롬프트에서 사용 가능한 쉘 기능은 해당 쉘에서 호출된 스크립트에 자동으로 사용 가능하지 않습니다.

두 가지 고급 액세스 방법이 있습니다.

  • 이 기능을 설정하는 스크립트를 가져옵니다. 이 작업을 수행하기 전에 스크립트가 수행하는 다른 작업에 대해 매우 명확하게 이해해야 합니다. 현지 지식이 없으면 안전한 옵션으로 권장할 수 없습니다.
  • 내보내기 기능.

즉, 다음과 같이 후자 옵션을 구현할 수 있습니다.

$ export -f krb
$ yourscript.sh

export로그인 시 실행되도록 이 명령을 쉘 구성 파일에 추가하는 것이 좋습니다 .

관련 정보