gpt4 book ai didi

bash - 如何在 PS1 中设置条件换行符?

转载 作者:行者123 更新时间:2023-11-29 08:47:03 24 4
gpt4 key购买 nike

我正在尝试设置 PS1 以便它在登录后立即打印出一些内容,但稍后会以换行符开头。

假设 export PS1="\h:\W\u\$ ",那么第一次(即登录后)您会得到:

hostname:~ username$ 

我一直在尝试在我的 ~/.bashrc 中做一些类似的事情:

function __ps1_newline_login {
if [[ -n "${PS1_NEWLINE_LOGIN-}" ]]; then
PS1_NEWLINE_LOGIN=true
else
printf '\n'
fi
}

export PS1="\$(__ps1_newline_login)\h:\W \u\$ “

期望得到:

# <empty line>
hostname:~ username$

一开始的完整示例是:

hostname:~ username$ ls `# notice: no empty line desired above!`
Desktop Documents

hostname:~ username$

最佳答案

尝试以下操作:

function __ps1_newline_login {
if [[ -z "${PS1_NEWLINE_LOGIN}" ]]; then
PS1_NEWLINE_LOGIN=true
else
printf '\n'
fi
}

PROMPT_COMMAND='__ps1_newline_login'
export PS1="\h:\W \u\$ "

解释:

  • PROMPT_COMMAND 是一个特殊的 bash 变量,每次在设置提示之前执行。
  • 您需要使用-z 标志来检查字符串的长度是否为0。

关于bash - 如何在 PS1 中设置条件换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14859148/

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