为什么 fish 会忽略函数中的第二个 'set' 命令?
Why would fish appear to ignore the second 'set' command in a function?
当我运行这个函数时,JAVA_HOME被设置,JUG_BT_ARCH没有被设置,'gello'被回显。我确定我遗漏了一些非常明显的东西。
function j8
set -x JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/
set -x JUG_BT_ARCH amd64-darwin11-xcode4
echo gello
end
默认情况下,变量具有函数作用域,因此当函数结束时,它们就会消失。您可以通过 --global
或 -g
:
将它们设为全局
set -gx JUG_BT_ARCH amd64-darwin11-xcode4
现在,当您 运行 函数时,此变量将保留。
当我运行这个函数时,JAVA_HOME被设置,JUG_BT_ARCH没有被设置,'gello'被回显。我确定我遗漏了一些非常明显的东西。
function j8
set -x JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/
set -x JUG_BT_ARCH amd64-darwin11-xcode4
echo gello
end
默认情况下,变量具有函数作用域,因此当函数结束时,它们就会消失。您可以通过 --global
或 -g
:
set -gx JUG_BT_ARCH amd64-darwin11-xcode4
现在,当您 运行 函数时,此变量将保留。