如何更改 zsh shell 的提示,同时仍保留 agnoster 提供的酷炫色彩?对于不知道的人,它看起来像这样
我想添加一些东西,比如!和 \u 在工作目录之前。我已经尝试过通常的 PS1="! \u \w" 但它只是给出了这个:

编辑:我找到了用于插入信息的正确转义字符,但它取消了样式
如何在保持样式的同时更改提示?
我在此视频中注意到,终端提示在分解为新行之前扩展了终端的整个宽度。我怎样才能设置我的PS1变量来用一些字符填充剩余的终端空间,就像这个用户所做的那样?
问题是,我不知道如何更新PS1每个命令的变量。在我看来,for 的字符串值PS1只读取一次,就像.bashrc文件只读取一次一样。我是否必须在每个命令之后编写某种钩子?
我还应该指出,该PS1变量将根据组成它的转义字符计算为不同的长度。例如,\w打印路径。
我知道我可以使用 获取终端宽度,使用 获取$(COLUMNS)当前PS1变量的宽度${#PS1},进行数学运算并打印适量的缓冲区字符,但是我如何让它每次都更新。有没有首选的方法?
是否可以将 PowerShell 代码 .PS1 转换为 C# 代码?
我一直在谷歌上寻找它,但我总是发现相反。
Reflector有AddIn 将 DLL 转换为 PS Code,所以我认为这是可能的..
使用脚本,我要更改父级Bash shell的提示。我尝试了以下方法:
PS1="Hello World > "
Run Code Online (Sandbox Code Playgroud)
这将更改运行脚本的子外壳的提示符,但是我将使用哪个命令来更改父外壳的提示符。有任何想法吗?
我想在.bashrc文件中更改我的PS1.我找到了一个使用带有%q指令的printf来转义字符的脚本:
#!/bin/bash
STR=$(printf "%q" "PS1=\u@\h:\w\$ ")
sed -i '/PS1/c\'"$STR" ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
问题是我收到此错误:
script.sh: 2: printf: %q: invalid directive
Run Code Online (Sandbox Code Playgroud)
任何的想法 ?也许另一种逃避角色的方法?
我想知道是否可以根据当前路径或pwd值更改PS1?
例如:
cd /home/user/directory1
PS1=[\e[1;32m\u\e[m@\e[1;34m\h\e[m \e[1;33m\W\e[m]
Run Code Online (Sandbox Code Playgroud)
但如果我在另一个目录中:
cd /home/user/thisdirectory
PS1=[\w]
Run Code Online (Sandbox Code Playgroud)
先感谢您!
我是shell脚本的新手,不能为我的生活弄清楚为什么这不起作用.
我正在尝试从我的shell脚本中更改提示.当我在终端中键入它时它会起作用,但是当我运行脚本并从菜单中选择它时它什么都不做.这就是我所拥有的:
read input
case $input in
1) oldprompt=$PS1
export PS1="\d \t"
;;
2) echo "option 2"
;;
*) echo "option 3"
;;
esac
Run Code Online (Sandbox Code Playgroud) 愚蠢的问题,但由于我是 Linux 操作系统的新手,我无法制作这个简单的脚本来回应PS1.
如果我输入echo $PS1bash,它会显示结果,但不会在脚本中显示。它返回空白。
例子:
#!/bin/bash
ps1=$(echo $PS1)
echo $ps1
Run Code Online (Sandbox Code Playgroud)
给初学者的任何提示?
提前致谢。
这是我设置我的bash PS1的脚本
# Reset
Color_Off="\[\033[0m\]" # Text Reset
# Regular Colors
Black="\[\033[0;30m\]" # Black
Red="\[\033[0;31m\]" # Red
Green="\[\033[0;32m\]" # Green
Yellow="\[\033[0;33m\]" # Yellow
Blue="\[\033[0;34m\]" # Blue
Purple="\[\033[0;35m\]" # Purple
Cyan="\[\033[0;36m\]" # Cyan
White="\[\033[0;37m\]" # White
# Bold
BBlack="\[\033[1;30m\]" # Black
BRed="\[\033[1;31m\]" # Red
BGreen="\[\033[1;32m\]" # Green
BYellow="\[\033[1;33m\]" # Yellow
BBlue="\[\033[1;34m\]" # Blue
BPurple="\[\033[1;35m\]" # Purple
BCyan="\[\033[1;36m\]" # Cyan
BWhite="\[\033[1;37m\]" # White
# Various variables you might want for your PS1 prompt instead
Time12h="\T"
Time12a="\@"
PathShort="\w"
PathFull="\W"
NewLine="\n"
Jobs="\j"
GIT_PS1_SHOWDIRTYSTATE="true"
PS1="\n${BBlack}\u@\h …Run Code Online (Sandbox Code Playgroud) 我正在运行 Bash 和 Z shell(zsh可执行文件)作为我的终端环境。
我的主要目标是我想在所有提示中添加时间戳......
\n类似于:PS1_DATE="\\D{%Y-%m-%d %H:%M:%S}"
\n\n\n我也希望我的提示看起来相同。如果我的两个提示符看起来像我的 Z shell 提示符(我喜欢这些颜色),我会喜欢它。
\n目前,\xe2\x80\x99 中的任何一个看起来都是我想要的方式,这真是一个奇迹,因为我不知道自己在做什么,而且因为我弗兰肯斯坦修改了我的.bashrc和.zshrc文件。对于任何有经验的人来说,它们可能看起来都很痛苦。
\n据我所知,我在两个rc文件中都使用了.dir_colors文件,这会覆盖颜色设置,但它们应该仅适用于 \xe2\x80\x9cLS\xe2\x80\x9d,尽管我可能是错的。
\n#\n# ~/.bashrc\n#\n\n[[ $- != *i* ]] && return\n\ncolors() {\n local fgc bgc vals seq0\n\n printf "Color escapes are %s\\n" \'\\e[${value};...;${value}m\'\n printf "Values 30..37 are \\e[33mforeground colors\\e[m\\n"\n printf "Values 40..47 are \\e[43mbackground colors\\e[m\\n"\n …Run Code Online (Sandbox Code Playgroud)