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
。