我正在尝试将以下 bash 脚本添加到fish,但在获取fish 中的语法时遇到了问题。这是原始脚本:
export MINION_INSTALL=$HOME/minion
export NOTES_HOME=$HOME/Notes
export INBOX=$NOTES_HOME/inbox
if [ -d "$MINION_INSTALL" ] ; then
export PATH="$MINION_INSTALL:$PATH"
fi
source $MINION_INSTALL/aliases_for_minion
Run Code Online (Sandbox Code Playgroud)
这是aliases_for_minion文件:
alias mn="minion"
alias icannotfind="minion --open --archive --full $@"
alias newnote="minion --new-note $@"
alias open="minion --open $@"
alias remind="minion --new-note --quick $@"
alias summary="minion --count inbox; minion --list --show-tags=False today; \
minion --count next; minion --count soon; minion --count someday"
Run Code Online (Sandbox Code Playgroud)
如果我在启动 bash 后运行 fish,minion 命令可以正常工作。
任何帮助将不胜感激!
下面是一些例子,说明这在鱼中会是什么样子:
set -x INBOX $NOTES_HOME/inbox
if [ -d "$MINION_INSTALL" ]
set -x PATH $MINION_INSTALL $PATH
end
Run Code Online (Sandbox Code Playgroud)
请注意没有引号,这在设置 PATH 的行中尤为重要。引用它会将列表中的所有路径折叠为一个条目,这不是您想要的。
除了末尾的 $@ 之外,别名在fish 中是有效的。fish 有参数 as $argv, not $@,但更重要的是,任何参数都隐式附加到 alias 命令。所以你可以写:
alias newnote="minion --new-note"
Run Code Online (Sandbox Code Playgroud)
然后,例如,newnote foo bar将成为minion --new-note foo bar
如果您愿意,可以使用 验证它functions newnote,这将显示别名生成的函数。
希望有帮助!