gpt4 book ai didi

shell - 当不在 $HOME 时让提示只显示目录?

转载 作者:行者123 更新时间:2023-12-02 01:00:34 25 4
gpt4 key购买 nike

当我在我的主目录时,我想阻止我的终端提示显示我所在的目录。

我正在使用 zsh。这是我的提示配置:

PROMPT=''

# Formatting
PROMPT+='%F{8}' # dark grey

# Non zero exit codes
PROMPT+='%(?..[Exit code %?] )'

# PID when relevant
if [[ $! -ne 0 ]]; then
PROMPT+='[PID $!] '
fi

# Current dir path
PROMPT+='[%~] '

# Formatting reset
PROMPT+='%f' # color reset

最佳答案

setopt PROMPT_SUBST
PROMPT+='$([[ $PWD != $HOME ]] && echo "[%~] ")'

说明

  • setopt PROMPT_SUBST 启用参数扩展 ($name),命令替换 ($(command )) 和算术展开($[exp]$((exp)))
  • PROMPT+='…' 附加到提示。注意这里需要使用单引号,这样内容在定义时不会展开,只有出现提示时才会展开。
  • $(command) 运行 command 并替换它的输出,例如$(echo foo) 将替换为“foo”。
  • [[ exp ]] 计算条件表达式。只有当表达式为真时,它才会返回零。请注意,[[ exp ]]zsh 的内置语法,而类似的 [ exp ] 将运行外部 [ (又名 test)命令。
  • PWD 包含当前工作目录。
  • HOME 包含当前用户的主目录。
  • != 测试不等式。
  • && 仅当左侧命令成功(即返回零)时才运行右侧命令
  • echo "[%~] " 打印(部分)提示字符串。请注意,使用双引号是为了防止周围的单引号过早闭合。

关于shell - 当不在 $HOME 时让提示只显示目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50918160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com