标签: ps1

如何打印当前的bash提示符?

问题很简单.我想评估PS1我的bash脚本中的当前值.

谷歌上的所有材料都指向了拉皮条的教程,但我想评估一下它将如何由我当前的终端呈现,或者至少由某个终端呈现.

是否有任何软/功能可以帮助我实现这一目标?当然我想要评估所有转义字符,所以echo $PS1在我的情况下这不是很有用.

bash prompt ps1

11
推荐指数
2
解决办法
7787
查看次数

PS1 env变量在mac上不起作用

我有一个脚本(不是我自己编写的),它在我的命令提示符下显示了git branch/svn分支.有谁知道为什么这不适用于mac?它在linux中完美运行.

来自https://github.com/xumingming/dotfiles/blob/master/.ps1:

# Display ps1 with colorful pwd and git status
# Acording to Jimmyxu .bashrc
# Modified by Ranmocy
# --

if type -P tput &>/dev/null && tput setaf 1 &>/dev/null; then
    color_prompt=yes
else
    color_prompt=
fi

__repo () {
    branch=$(type __git_ps1 &>/dev/null && __git_ps1 | sed -e "s/^ (//" -e "s/)$//")
    if [ "$branch" != "" ]; then
        vcs=git
    else
        branch=$(type -P hg &>/dev/null && hg branch 2>/dev/null)
        if [ "$branch" != "" ]; then
            vcs=hg …
Run Code Online (Sandbox Code Playgroud)

git macros ps1

10
推荐指数
3
解决办法
1万
查看次数

Bash提示换行问题

新手问题,我最近改变了我的PS1:

RESET="\[\017\]"
NORMAL="\[\033[0m\]"
YELLOW="\[\033[0;33m\]"
CYAN="\[\033[0;36m\]"

export PS1="\[$RESET\]\u@\h:\[$CYAN\]\w\[$YELLOW\]\$(__git_ps1)\[$NORMAL\] \$ "
Run Code Online (Sandbox Code Playgroud)

但现在我得到一个换行错误.我创建了一个gif来解释这个问题:

在此输入图像描述

什么想法可能是错的?

macos bash command-prompt ps1

10
推荐指数
1
解决办法
900
查看次数

如果远程运行,只在bash提示符中列出主机?

我正试图按照我的意愿修改我的Bash提示; 这就是$PS1目前的情况(为了清晰起见,编辑了颜色):

PS1='\u@\h:\w\$ '
Run Code Online (Sandbox Code Playgroud)

结果如下:

andreas@tablet-2710p-ubuntu:~$ 
Run Code Online (Sandbox Code Playgroud)

如果我在本地运行当前的Bash会话而不是访问远程服务器,我可以调整提示,以便隐藏@tablet-2710p-ubuntu位(由表示@\h)吗?

我还宁愿不硬编码(例如,只是替换任何出现的tablet-2710p-ubuntu)以便于移植,以及以后更改主机名.

bash ps1

9
推荐指数
2
解决办法
1488
查看次数

bash:如何评估PS1,PS2,......?

可能重复:
Echo扩展PS1

有没有什么办法来"评价" PS1,PS2从bash脚本中,等?

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

例如,

=====================================
 PS1 element -->     Alternate means
=====================================
 \u          -->     $USER
 \h          -->     $HOSTNAME
 \w          -->     $PWD
 ...
=====================================
Run Code Online (Sandbox Code Playgroud)

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

bash evaluate ps1

8
推荐指数
1
解决办法
4590
查看次数

简化高级Bash提示变量(PS1)代码

所以我发现了以下很酷的Bash提示:

Bash提示

..具有以下基本逻辑:

PS1="\[\033[01;37m\]\$? \$(if [[ \$? == 0 ]]; then echo \"\[\033[01;32m\]\342\234\223\"; else echo \"\[\033[01;31m\]\342\234\227\"; fi) $(if [[ ${EUID} == 0 ]]; then echo '\[\033[01;31m\]\h'; else echo '\[\033[01;32m\]\u@\h'; fi)\[\033[01;34m\] \w \$\[\033[00m\] "
Run Code Online (Sandbox Code Playgroud)

然而,这不是非常基本的,恰好是一个令人难以置信的混乱.我想让它更具可读性.

怎么样?

bash ps1

8
推荐指数
1
解决办法
3148
查看次数

PS1 env 无法在新 Mac Catalina 上解析

我的 PS1 变量无法正确解析,看起来像这样,

\[\033[01;32m\]\u@\h\[\033[01;34m\] [\w]\[\033[00m\]
\[\033[01;32m\]\u@\h\[\033[01;34m\] [\w]\[\033[00m\]
\[\033[01;32m\]\u@\h\[\033[01;34m\] [\w]\[\033[00m\]mv .bashrc .bash_profile
\[\033[01;32m\]\u@\h\[\033[01;34m\] [\w]\[\033[00m\]source .bash_profile
\[\033[01;32m\]\u@\h\[\033[01;34m\] [\w]\[\033[00m\]
\[\033[01;32m\]\u@\h\[\033[01;34m\] [\w]\[\033[00m\]ls
Applications    Desktop     Documents   Downloads   Google Drive    Library     Movies      Music       Pictures    Public
\[\033[01;32m\]\u@\h\[\033[01;34m\] [\w]\[\033[00m\]vim .bash_profile
\[\033[01;32m\]\u@\h\[\033[01;34m\] [\w]\[\033[00m\]source .bash_profile
\[\e[;31m\][\u@\h \W]$ \[\e[m\]
\[\e[;31m\][\u@\h \W]$ \[\e[m\]
\[\e[;31m\][\u@\h \W]$ \[\e[m\]
\[\e[;31m\][\u@\h \W]$ \[\e[m\]
Run Code Online (Sandbox Code Playgroud)

发生了什么?谢谢。

macos shell ps1

8
推荐指数
1
解决办法
3750
查看次数

找不到bash __git_ps1命令

我是初学者,尝试按照以下链接中的步骤在我的新Mac上设置开发人员环境:http://vanderveer.be/setting-up-my-perfect-developer-environment-on-osx-10-8-mountain -lion-10-8-2-final-edition /.

从git执行文件后,我的终端窗口现在显示:

rbenv: version `1.9.3-p194' not installed
-bash: __git_ps1: command not found
Run Code Online (Sandbox Code Playgroud)

第一行只显示我打开一个新的终端窗口,而第二行显示每次我按返回,无论我输入到终端.

我已经阅读了很多关于stackoverflow的问题,并试图模仿他们的解决方案无济于事.我认为我在使用git安装软件包时犯了一个错误,因为我不是很有经验,我认为现在我可能搞砸了配置,并且还想知道是否有任何方法可以回到bash的默认设置?

非常感谢!艾伦

git macos bash ps1

7
推荐指数
1
解决办法
6845
查看次数

Anaconda 环境 bash 前缀太长

我在项目文件夹中创建了一个 anaconda 环境,指定了 -p 选项的路径,即不在默认的 anaconda3/envs 文件夹中:

conda create -p venv
Run Code Online (Sandbox Code Playgroud)

问题是当我激活该环境时,终端中的 bash 前缀太长,即将环境的整个路径添加到提示中:

(/path/to/the/environment/venv) user@machine: ~/path/to/environment/$
Run Code Online (Sandbox Code Playgroud)

有没有办法解决这个问题,意味着缩短它或从提示中删除前缀?

我的 $PS1:

\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$
Run Code Online (Sandbox Code Playgroud)

bash ps1 python-venv anaconda

7
推荐指数
1
解决办法
1358
查看次数

脚本将其他脚本调用为 .ps1,但不使用 ps2exe 作为 .exe

$password = ConvertTo-SecureString \xe2\x80\x9cPassword+++\xe2\x80\x9d -AsPlainText -Force\n$Cred = New-Object System.Management.Automation.PSCredential ("Admin", $password)\n$FileLocale = Split-Path -Parent -Path $MyInvocation.MyCommand.Definition\nWrite-Output $FileLocale\n$AntFile = "$FileLocale\\StartApps.ps1"\nWrite-Output $AntFile\nStart-Process PowerShell.exe -ArgumentList "-command &$AntFile -UserCredential $Cred"  \n
Run Code Online (Sandbox Code Playgroud)\n

嗨,该代码在 .ps1 中运行,我调用另一个脚本,他完成了他的工作。但是当我在 ps2exe 的帮助下将其转换为 .exe 时,他不再做他的工作了。作为管理员与否。这不是我第一次使用该启动进程,但这是我第一次使用变量作为命令的目标。有谁知道 ps1 和 exe 之间出了什么问题吗?

\n

谢谢

\n

powershell exe start-process ps1 ps2exe-gui

7
推荐指数
1
解决办法
766
查看次数