は助ける、魚のスクリプトfoo.fish
のみプリント "foo" を考えると、またはエラー下位レベル関数からフィッシュスクリプトを中止するにはどうすればよいですか?
function foo
__parse_args $argv[1]
echo foo
end
function __parse_args --argument option
if test -z $option
return # No option to parse, return early
end
switch $option
case -h --help
echo "Shows this help and exits"
return 0 # How can we exit 0 instead of return?
case -\*
echo "Error: '$option' not a valid option"
return 1 # How can we exit 1 instead of return?
end
end
実際の行動:
↪ foo -h
Shows this help and exits
foo
期待される動作:
↪ foo -h
Shows this help and exits
return
マニュアルは言います現在の内部関数を停止し、関数の終了状態を設定します。
ネストされた関数呼び出しの内部で、適切な終了コードを使用してスクリプトを早期に終了するにはどうすればよいですか?
exit
はスクリプトの代わりにシェルを終了するため、使用できません。
「スクリプトだけでなくシェルを終了する」とはどういう意味ですか? 'source'または' .'でスクリプトをソースしない限り、スクリプトはそれ自身のシェルで実行されます。 –