【发布时间】:2022-10-20 03:26:13
【问题描述】:
创建了一个简单的函数并将其导出到.zshenv。当我启动终端时,它会在控制台上输出该功能。我怎样才能停止这样做?
.zshenv
export JAVA_HOME=/Users/guru/Library/Java/JavaVirtualMachines/temurin-1.8.0_322/Contents/Home
export export ENV=dev
function myfun() {
echo "Hello!"
}
export -f myfun
zsh -x
guru@Gurunaths-MacBook-Pro ~ % zsh -x
+/Users/guru/.zshenv:1> export JAVA_HOME=/Users/guru/Library/Java/JavaVirtualMachines/temurin-1.8.0_322/Contents/Home
+/Users/guru/.zshenv:2> export export ENV=dev
+/Users/guru/.zshenv:9> export -f myfun
myfun () {
echo "Hello!"
}
+/etc/zshrc:7> [[+/etc/zshrc:7> locale LC_CTYPE
+/etc/zshrc:7> [[ UTF-8 == UTF-8 ]]
+/etc/zshrc:8> setopt COMBINING_CHARS
+/etc/zshrc:12> disable log
+/etc/zshrc:15> HISTFILE=/Users/guru/.zsh_history
+/etc/zshrc:16> HISTSIZE=2000
+/etc/zshrc:17> SAVEHIST=1000
+/etc/zshrc:20> setopt BEEP
+/etc/zshrc:24> [[ -r /Users/guru/.zkbd/xterm-256color-apple ]]
【问题讨论】:
-
您的 .zshenv (或者可能是另一个启动文件)中有问题;在不知道其中有什么的情况下,除了猜测问题之外,不可能做更多的事情。 “出口”是什么意思?在 zsh 中,这实际上只适用于变量,而不适用于函数。另外,请don't post images of text;发布文本本身(在code block format 中,以便准确显示)。
-
您的启动文件之一必须包含显示该功能的代码,并且您需要找出它发生的位置。对于第一个测试,我将使用
zsh -lx创建一个子shell 并分析输出。 -
@GordonDavisson我不知道函数不允许在zsh中导出。我认为它会像在 bash 中一样工作。此外,根据您的建议格式化代码。
-
@user1934428 TBH,我不明白 zsh -x 的输出是否有任何问题
-
好吧,您查看输出,直到看到不需要的输出。就在此之前,跟踪显示了该打印的罪魁祸首语句。