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的函数就像迷你脚本——你几乎可以在里面放任何东西。从历史上看,在shell脚本中函数的概念已经节省了无数小时的重复性键入和调试。与Python这样的编程语言不同,Shell函数更多的是关于便利性而非结构。

一些shell,比如Bash,使用function或者直接使用大括号。Fish坚持使用function ... end——清晰且易读。在Fish函数内部,你可以享受所有的功能:参数、使用set -l设置的局部变量,甚至可以在另一个函数内定义一个函数。

你不需要一个return值,因为Fish在这方面不太重视;你的函数的输出就是它的返回。如果你想要将函数持久化,以供未来的会话使用,记住funcsave

另请参阅

函数命令

  • function — 创建一个函数
  • functions — 打印或删除函数
  • funcsave — 将函数的定义保存到用户的自动加载目录中
  • funced — 交互式编辑函数