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