Go to main content
Oracle® ZFS Storage Appliance 管理ガイド、Release OS8.7.0

印刷ビューの終了

更新: 2017 年 3 月
 
 

CLI スクリプトエラーについて

エラーが生成されると、例外がスローされます。この例外は一般に、次のメンバーを含むオブジェクトです。

  • code - エラーに関連付けられた数値コード

  • message - エラーに関連付けられた、人間が読める形式のメッセージ

例外はキャッチして処理できます。または、スクリプト環境からスローされる可能性があります。スクリプト環境にキャッチされていない例外がある場合は、CLI にその詳細が表示されます。例:

dory:> script run('not a cmd')
error: uncaught error exception (code EAKSH_BADCMD) in script: invalid command
       "not a cmd" (encountered while attempting to run command "not a cmd")

例外をキャッチしてダンプすることによって、例外に関するより詳細な情報を表示できます。

dory:> script try { run('not a cmd') } catch (err) { dump(err); }
{
   toString: <function>,
   code: 10004,
   message: 'invalid command "not a cmd" (encountered while attempting to
                      run command "not a cmd")'
}

また、これにより、豊富なエラー処理も可能になります。次に例を示します。

#!/usr/bin/ksh -p

ssh -T root@dory <<EOF
script
       try {
               run('shares select default select $1');
       } catch (err) {
               if (err.code == EAKSH_ENTITY_BADSELECT) {
                       printf('error: "$1" is not a share in the ' +
                           'default project\n');
                       exit(1);
               }

               throw (err);
       }

       printf('"default/$1": compression is %s\n', get('compression'));
       exit(0);
EOF

このスクリプトが「share.ksh」という名前であり、無効なシェア名で実行された場合は、次のような豊富なエラーメッセージが生成されます。

% ksh ./share.ksh bogus
error: "bogus" is not a share in the default project