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

シェルプロンプトで使用可能なシェル機能は、そのシェルから呼び出されたスクリプトでは自動的には使用できません。

2つの高度なアクセス方法があります。

  • この機能を設定するスクリプトを取得します。これを行う前に、スクリプトが実行する他の作業について非常に明確に理解する必要があります。現地の知識がなければ、安全なオプションとしてお勧めできません。
  • エクスポート機能。

つまり、次のように後者のオプションを実装できます。

$ export -f krb
$ yourscript.sh

exportログイン時に実行されるように、このコマンドをシェル設定ファイルに追加することをお勧めします。

おすすめ記事