如何取消鱼壳中的变量?

J0h*_*4lt 60 fish

在bash中我可以取消设置变量

unset myvar
Run Code Online (Sandbox Code Playgroud)

在鱼我得到

fish: Unknown command 'unset'
Run Code Online (Sandbox Code Playgroud)

什么是鱼的未设置的等价物.

J0h*_*4lt 92

Fish使用set命令上的选项来操作shell变量.

使用-e--erase选项取消设置变量.

set -e myvar 
Run Code Online (Sandbox Code Playgroud)

此外,您可以定义一个功能

function unset
  set --erase $argv
end

funcsave unset
Run Code Online (Sandbox Code Playgroud)

或者别名 ~/.config/fish/config.fish

abbr --add unset 'set --erase'
Run Code Online (Sandbox Code Playgroud)

  • 请注意,该函数将无法擦除局部变量,因为它启动了一个新的变量范围.将"--no-scope-shadowing"添加到函数定义中以解决此问题. (3认同)