» cat ~/.config/fish/config.fish
function take
command mkdir $argv;and cd $argv
end
function check
sudo dmesg -c>/dev/null;
make clean; make;
/usr/local/bin/kedr start $argv;
sudo insmod "$argv.ko"; sudo rmmod $argv;
/usr/local/bin/kedr stop
dmesg;
end
function sudo
if functions -q $argv[1]
set argv fish -c "$argv"
end
command sudo $argv
end
跑步时我收到此错误:
» sudo check "simple-no-macro"
fish: Unknown command 'check simple-no-macro'
fish:
check simple-no-macro
^
答案 0 :(得分:1)
你也在GitHub上问了这个问题,所以这里my answer from there:
这里的问题是,您所定义的功能并不存在于您开始的新鱼类实例中。
最好在check
中保存的文件中定义~/.config/fish/functions/check.fish
函数,然后让该函数跨实例运行。
附注:bash允许您使用环境变量跨实例导出函数,但zsh和ksh都使用类似的方法来捕获 - 请参阅Propagating shell functions from Unix Power Tools。