我将部分脚本从bash
移植到fish
shell,无法访问我的实用程序函数。
以下是我在bash中的表现,首先在"$HOME/.my-posixrc"
声明我的方法:
function configure_date_utilities() {
function today() {
to-lower "$(date '+%Y-%b-%d')"
}
function today-num() {
to-lower "$(date '+%Y-%m-%d')"
}
function now() {
to-lower "$(date '+%Y-%b-%d-%H:%M')"
}
}
然后获取此文件:
source "$HOME/.my-posixrc"
所以我能做到:
$ today
2015-DEC-13
function configure_date_utilities
function today
to-lower (date '+%Y-%b-%d')
end
function today-num
to-lower (date '+%Y-%m-%d')
end
function now
to-lower (date '+%Y-%b-%d-%H:%M')
end
end
然后在~/.config/fish/config.fish
:
source "$HOME/.my-posixrc"
但方法未找到:
$ today
目前尚未安装“今天”程序。您可以输入以下命令安装它: sudo apt-get install mhc-utils
如何“导出”我的功能,以便我可以在提示中访问它们?
P.S。:我的dotfiles are available on github。
答案 0 :(得分:2)
删除外部函数或将其调用到文件中。
在fish中,所有函数都是全局函数,但不会定义内部函数,因为它们的定义永远不会运行。
所以:
function configure_date_utilities
function today
to-lower (date '+%Y-%b-%d')
end
function today-num
to-lower (date '+%Y-%m-%d')
end
function now
to-lower (date '+%Y-%b-%d-%H:%M')
end
end
configure_date_utilities
或
function today
to-lower (date '+%Y-%b-%d')
end
function today-num
to-lower (date '+%Y-%m-%d')
end
function now
to-lower (date '+%Y-%b-%d-%H:%M')
end