Shell 写fish-if语句有困难
因此,我有以下if语句(最初来自我的.zshrc):Shell 写fish-if语句有困难,shell,if-statement,syntax,zsh,fish,Shell,If Statement,Syntax,Zsh,Fish,因此,我有以下if语句(最初来自我的.zshrc): 现在我试图将其移植到我的config.fish,我知道这与if上的[有关,但我不能完全理解语法。the[是可以的。fish中的两个不同部分是+x扩展修饰符和循环语法 在zsh中,“${NVIM\u LISTEN\u ADDRESS+x}”如果设置了$NVIM\u LISTEN\u ADDRESS,则计算结果为x,否则为空;然后比较它是否为空。这似乎是一种只检查变量是否已设置的迂回方法 关于循环,fish块总是以end结尾,并且不需要then或
现在我试图将其移植到我的
config.fish
,我知道这与if上的[
有关,但我不能完全理解语法。the[
是可以的。fish中的两个不同部分是+x扩展修饰符和循环语法
在zsh中,“${NVIM\u LISTEN\u ADDRESS+x}”
如果设置了$NVIM\u LISTEN\u ADDRESS
,则计算结果为x
,否则为空;然后比较它是否为空。这似乎是一种只检查变量是否已设置的迂回方法
关于循环,fish块总是以end
结尾,并且不需要then
或do
所以这是最直接的捕鱼港:
if [ -n "$NVIM_LISTEN_ADDRESS" ]
alias h='nvr -o'
alias v='nvr -O'
alias t='nvr --remote-tab'
end
这是更惯用的说法:
if set -q NVIM_LISTEN_ADDRESS
abbr h 'nvr -o'
abbr v 'nvr -O'
abbr t 'nvr --remote-tab'
end
它使用了在适当位置膨胀的鱼。感谢您提供了如此广泛的答案。
if set -q NVIM_LISTEN_ADDRESS
abbr h 'nvr -o'
abbr v 'nvr -O'
abbr t 'nvr --remote-tab'
end