SSHクライアントを終了せずにコマンドラインで戻りコードをどのように設定できますか?

SSHクライアントを終了せずにコマンドラインで戻りコードをどのように設定できますか?

私はUnixに初めてアクセスし、現在のファイルが規則的で読み取り可能であることを確認するためにエイリアスを作成する必要があります。不規則な場合は、読み取り可能かどうかをテストするのではなく、終了コードとして1を返す必要があります。読み取れない場合は、終了コードとして2を返す必要があります。

alias test="if [ ! -f filename ] ; then echo 'Irregular file'; exit 1 ; fi; if [ ! -r filename ]; then echo 'Unreadable file'; exit 2; fi;

これで問題は、実行時に終了するとクライアント全体が閉じられることです。この問題を解決する方法はありますか?

ベストアンサー1

これは、Googleが検索する最初のリンクであるためです。

出口を括弧で囲むと

(exit 2)

次に、括弧で囲まれたサブシェルを終了して戻りコードを設定し、現在のシェルを終了しません。その後、$?を使用してコードをテストできます。いつものように

alias mytest="if [ ! -f filename ] ; then echo 'Irregular file'; (exit 1) ; elif [ ! -r filename ]; then echo 'Unreadable file'; (exit 2); fi"

おすすめ記事