问题标签 [ps1]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
12927 浏览

bash - 如何扩展PS1?

我有一个 shell 脚本,它在多个目录(fgit)中运行相同的命令。对于每个目录,我希望它显示当前提示 + 将在那里运行的命令。如何获取与解码(扩展)对应的字符串PS1?例如,我的默认 PS1 是

我想username@hostname:/path$用漂亮的颜色来呼应生成的提示,最好(但不一定)。粗略地看一下 Bash 手册并没有给出任何明确的答案,echo -e $PS1只是评估了颜色。

0 投票
1 回答
3317 浏览

git - bash PS1 中的动态元素

我在 ~/.localsh 文件中添加了以下内容,以便在使用 git 时自定义我的 bash 提示符。

基本上我想在我的终端中显示当前分支。gitk 工具显示具有绿色背景和黑色前景的分支,这就是我想要做的。

我有什么工作,但是当我按键盘上的向上箭头向后滚动以前的命令时,它会被覆盖。

当你我没有用 [\e[0m] 结束颜色序列时,这些东西已经发生了。现在因为调用 getgitbranch 函数而发生在我身上。我认为这与终端不知道提示多长时间有关。

所以,问题来了……如何在我的 bash 提示符中正确使用动态元素,而不是在使用向上箭头时将其淹没?

0 投票
2 回答
22826 浏览

git - 为什么我的 bash 没有提示更新?

我是 git 新手,我正在尝试将当前的 git 分支添加到我已经存在的提示符中,该提示符定义如下:

我尝试了它(通过.bashrc再次获取我的文件),它似乎工作,但后来我去了另一个分支,它没有更新。如何确保$(__git_ps1)未缓存?

0 投票
1 回答
449 浏览

svn - 如果它不在 svn 文件夹中,请获取“svn info”以不抱怨

我正在为 PS1 变量修改一些 bash 脚本,以控制我的命令行颜色。如果我在 svn 存储库中,我想做的一件事是在本地文件夹名称之后放置“(svn)”。我如何尝试在我的 .bashrc 中使用此函数来执行此操作,我在设置 PS1 时调用该函数:

如果我在 svn 文件夹中,这可以正常工作。但是,如果我去一个非 svn 文件夹,它会触发这个抱怨"svn: '.' is not a working copy",这显然很烦人。我不是 bash 脚本专家,任何人都可以看到如何阻止这种情况吗?

谢谢,最大

我想到了另一种方法来判断我是否在 svn 文件夹中,即查找 .svn 目录,但 svn info 似乎更干净。另外,我只是好奇如何停止错误消息,或者以某种方式将其隐藏在我的 bash 脚本中。

0 投票
11 回答
33740 浏览

bash - 如何缩短命令行提示符的当前目录?

我正在使用 Ubuntu,当我使用一些较深的目录层次结构时,我厌倦了 bash 中的这种长提示。所以,我想通过以下方式调整我的 PS1 以缩短工作目录部分:

目前我有:

并希望拥有:

如果 len($PWD) 超过给定阈值,则会发生截断。我想始终保留第一个路径组件和至少一个最后一个路径组件。然后在空间允许的情况下,从右侧添加更多组件。

这就是我目前所拥有的。它有效,但是:1)不保留第一个路径组件,2)不尊重边界处的切割路径:

结果:

提前致谢!

0 投票
1 回答
2016 浏览

bash - bash:用漂亮的 PS1 换行,可以进行位置回显

我的登录脚本中有类似的东西,它将 $foo 保留在终端的右上角。它有效,但有一个警告。如果我输入一个很长的命令,它不会换行。(好吧,如果它的长度超过两行,它会换行,但是如果有意义的话,第二行会覆盖第一行。)

任何人都知道我如何在 $POS 处制作 bash 换行(即插入换行符)?甚至在$COLUMNS?

0 投票
1 回答
1067 浏览

bash - Bash 配置文件设置不适用于路径 - PS1

我编写了以下 bash 配置文件设置文件:

由于某种原因,获取 newPWD 不起作用。它存在于环境中(我可以使用 echo 打印它),但是它没有添加到命令行提示符中。总是添加一个空字符串。所以一个示例输出是:

有什么想法为什么不呢?


PS。这是我的解决方案:

在此处输入图像描述

0 投票
6 回答
19387 浏览

bash - bash PS1 提示符中的短日期

您可以在 PS1 配置中使用 \d 来显示长日期,即。5 月 18 日星期二,但我怎样才能让它以 18.05.2012 之类的格式显示呢?

0 投票
3 回答
1150 浏览

macos - 在 Bash 父 shell 中更改 PS1 提示符

使用脚本,我将更改父 Bash shell 的提示。我尝试了以下方法:

这会更改脚本正在其中运行的子 shell 的提示,但是我将使用哪个命令来更改父 shell 的提示。有任何想法吗?

0 投票
1 回答
5498 浏览

bash - bash:如何评估 PS1、PS2、...?

可能重复:
Echo 扩展 PS1

有没有办法从 bash 脚本中“评估”、等等PS1PS2

虽然,我可以使用替代方法来获取我 current 的所有元素PS1,但我真的希望能够重用它的定义,而不是使用这些替代方法。

例如,

我可以很好地使用脚本中的“替代方法”列,但我不想这样做。例如,在我的PS1中,我通过终端转义序列使用粗蓝色,我希望能够通过评估简单地重用PS1.