シェルコマンドまたは1行スクリプトから必要な終了コードを生成するにはどうすればよいですか?

シェルコマンドまたは1行スクリプトから必要な終了コードを生成するにはどうすればよいですか?

少し作りたいです。終了コード、20としましょう。
しかし、シェルでこれを行うと、次のようになります。

$ exit 20

シェルが閉じたか(X-Windowsの場合)ログアウトしました(テキストコンソールの場合)。もちろん、.shスクリプトではこのコマンドは正しく機能します。

私は持っていますテスト済みです。成功しませんでした:

$ return 20
bash: return: can only `return' from a function or sourced script
$ break 20
bash: break: only meaningful in a `for', `while', or `until' loop

どのような方法がありますか?割り当て$?変える?

答え1

サブシェルで終了します。

(exit 20)

あるいは、次のように関数を書くこともできます。

ret () { return $1; }
ret 20

関連情報