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を覚えておいてください。

参照

関数コマンド

  • function — 関数を作成
  • functions — 関数を表示または消去
  • funcsave — 関数の定義をユーザーの自動読み込みディレクトリに保存
  • funced — 関数を対話的に編集