Fish Shell:
コードを関数に整理する
方法:
Fishで関数を書くには、functionキーワードを使い、名前を付け、endで終了します。こちらが簡単なものです:
function hello
echo "Hello, World!"
end
hello出力:
Hello, World!では、ユーザーにあいさつするようにしましょう:
function greet
set user (whoami)
echo "Hey there, $user!"
end
greet出力:
Hey there, your_username!セッションを跨いで保存するには、funcsave greetを使用します。
深掘り
Fish Shellの関数はミニスクリプトのようなものです。あらゆるものを詰め込むことができます。歴史的に、シェルスクリプティングの関数の概念は、繰り返しのタイピングとデバッグの何千時間も節約してきました。Pythonのようなプログラミング言語とは異なり、Shellの関数は構造よりも便利さについてです。
一部のシェル、例えばBashは、functionまたは単に中括弧を使用します。Fishはfunction ... endに固執しています。明確で読みやすいです。Fish関数の内部では、パラメーター、set -lでのローカル変数、さらには別の関数内で関数を定義することさえできます。
return値は必要ありません。Fishはそれを重視していないからです。関数の出力がその返り値です。そして、将来のセッションで利用可能な永続的な関数を望むならば、funcsaveを覚えておいてください。
参照
- 関数に関するfishチュートリアル: https://fishshell.com/docs/current/tutorial.html#tut_functions