标签: ps1

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
查看次数

我如何设置$?在PS1调用的函数中?

我目前在bash中有一个提示,它调用一个函数来输出最后一个命令运行的返回码(如果非零):

exit_code_prompt()
{
    local exit_code=$?
    if [ $exit_code -ne 0 ]
    then
        tput setaf 1
        printf "%s" $exit_code
        tput sgr0
    fi
}


PS1='$(exit_code_prompt)\$ '
Run Code Online (Sandbox Code Playgroud)

除非$?不重置,除非运行另一个命令,否则这样可以很好地工作:

$ echo "works"
works
$ command_not_found
bash: command_not_found: command not found
127$ 
127$ 
127$ 
127$ echo "works"
works
$
Run Code Online (Sandbox Code Playgroud)

是否可以$?在第一次exit_code_prompt()运行时重置/取消设置父shell 的值,使其不再继续重复提示中的值?

非常感谢,史蒂夫.

bash command-prompt .bash-profile ps1

6
推荐指数
1
解决办法
292
查看次数

如何设置PS1使git和conda都可以在bash中显示?

我的.bashrc:

# show a short way
shortwd() {
    num_dirs=3
    pwd_symbol="..."
    newPWD="${PWD/#$HOME/~}"
    if [ $(echo -n $newPWD | awk -F '/' '{print NF}') -gt $num_dirs ]; then
        newPWD=$(echo -n $newPWD | awk -F '/' '{print $1 "/.../" $(NF-1) "/" $(NF)}')
    fi
    echo -n $newPWD
}
# show git branch
git_branch() {
   git symbolic-ref HEAD --short
}

export PS1='\n$CONDA_PROMPT_MODIFIER\e[38;5;211m$(shortwd)\e[38;5;48m [$(git_branch)]\e[0m$'
Run Code Online (Sandbox Code Playgroud)

现在 bash 看起来像:

(基础)/.../MyCode/python [master]$

但在我跑去conda activate env切换我的 conda 环境之后。它有一个 BUG,无论我运行什么命令,总是在命令输出的末尾显示当前的 conda env 名称。如下所示:

(基础) /.../MyCode/python [master]$ls
code_study keras mxnet …

git bash ps1 anaconda

6
推荐指数
1
解决办法
2183
查看次数

如何在zsh中显示conda的环境(不使用oh-my-zsh)?

我使用zsh没有配备 oh-my-zsh,因为我在我的机器上克隆了许多 git 存储库,并且 oh-my-zsh 的默认主题或“josh”主题使其非常慢,对于cdls命令等。

因此,我删除了 oh-my-zsh 并仅使用 zsh 的默认推荐配置,除了添加一些别名和路径变量。

现在问题来了:我通过conda管理我的 python 环境,并且提示符中没有显示当前环境名称。

我已经执行了命令:

conda init zsh
Run Code Online (Sandbox Code Playgroud)

重新打开我的终端(默认 shell 是 zsh),仍然不显示“(base)”或“(py36)”东西

我怎样才能告诉我的终端显示这些东西?git 分支对我的工作并不重要,但当前的 python 版本确实很重要,因为与 DeepLearning 相关的工具使用许多不同的 python 版本。

python zsh ps1 conda

6
推荐指数
2
解决办法
2万
查看次数

bash PS1中的动态元素

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

基本上我想让我的终端显示当前分支.gitk工具显示带有绿色背景和黑色前景的分支,这就是我正在尝试做的事情.

我的工作原理,但是当我按下键盘上的向上箭头以回滚以前的命令时,它会被覆盖.

这个东西碰巧发生在你没有用[\ e [0m]结束颜色序列的时候.现在,由于调用了getgitbranch函数,它正在发生在我身上.我认为它与终端有关,不知道提示有多长.

接下来的问题是......如何在我的bash提示中正确使用动态元素,而不是在使用向上箭头时使用动态元素?

function getgitbranch()
{
git branch | grep "^\*" | cut -c3-
}

function blabla()
{
PS1=""
PS1="$PS1\[\e[0;30m\]\[\e[42m\]\[\$(getgitbranch)\]\[\e[0;49m\]\[\e[0m\] "
PS1="$PS1\[\e[1;35m\][\[\e[0m\]"
PS1="$PS1\[\e[1;33m\]\w\[\e[0m\]"
PS1="$PS1\[\e[1;35m\]]\[\e[0m\]"
PS1="$PS1 \[\e[1;31m\]>\[\e[0m\] "
export PS1
}
Run Code Online (Sandbox Code Playgroud)

git bash prompt ps1

5
推荐指数
1
解决办法
3143
查看次数

获得动态bash提示PS1正确

我正在进行动态bash提示,我希望在PS1中报告在本地文件系统上启用了哪个版本的配置文件.这是我试图做的简化的一个人为的例子.出错的事情:出现错误的包装和/或逃生括号.谁能发现我做错了什么?

如果设计的配置匹配"v2",我想在PS1中看到该版本为黄色.如果是"v1",则提示为绿色.设置:

$ grep FOOVER foo-*.conf
foo-v1.conf:# FOOVER xyz-v1
foo-v2.conf:# FOOVER zet-v2
Run Code Online (Sandbox Code Playgroud)

我然后symlink foo.conf foo-v1.conf.我的bashrc:

 0 GREEN=$(tput setaf 034)
 1 YELLOW=$(tput setaf 3)
 2 BLUE=$(tput setaf 4)
 3 CYAN=$(tput setaf 6)
 4 BOLD=$(tput bold)
 5 RESET=$(tput sgr0)
 6 CONF=$HOME/foo.conf
 7
 8 function __get_foo_version () {
 9   FOOVER=$(grep FOOVER $CONF | awk '{print $3}')
10   if [[ "$FOOVER" =~ v2$ ]]; then
11     style_foover="${BOLD}${YELLOW}$FOOVER"
12     #style_foover="\[${BOLD}${YELLOW}\]$FOOVER"
13   elif [[ "$FOOVER" =~ v1$ ]]; then
14     style_foover="${BOLD}${GREEN}$FOOVER"
15     #style_foover="\[${BOLD}${GREEN}\]$FOOVER"
16   fi
17 …
Run Code Online (Sandbox Code Playgroud)

bash ps1

5
推荐指数
1
解决办法
2332
查看次数

Bash PS1显示$而不是#为root

登录到root时,echoed的默认提示为\s-\v\$,显示为bash-4.2#.我正在尝试使用bash提示符,以便显示工作目录. export PS1="\w \$".

提示正确显示,但是,符号\$不会转换为a #,即使我$UID是0,哪种类型会忽略省略用户符号的目的\u.有什么额外的东西我必须添加,或者如果我导出它该符号不起作用?

linux bash root ps1

5
推荐指数
1
解决办法
4635
查看次数

使用键盘热键启动Powershell脚本

我想用键盘上的热键(例如CTRL + SHIFT + F)执行Powershell脚本(ps1-文件)。

我设法创建了脚本的快捷方式(右键单击资源管理器>新建>快捷方式)。快捷方式的目标是:“%SystemRoot%\ system32 \ WindowsPowerShell \ v1.0 \ powershell.exe -ExecutionPolicy绕过-文件” PATH_TO_THE_SCRIPT“”。

当我手动执行脚本(通过双击快捷方式)时,它就像一个超级按钮。但是,当我尝试在“快捷方式属性”(CTRL + SHIFT + F)中分配“快捷键”并按我刚刚定义的快捷键时,什么也没有发生。怎么了?

我非常确定这与安全策略有关。但是我不知道到底是什么。

这是我的执行政策:

Scope ExecutionPolicy
----- ---------------
MachinePolicy  Undefined
UserPolicy     Undefined
Process        RemoteSigned
CurrentUser    Unrestricted
LocalMachine   Unrestricted
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏。

powershell keyboard-shortcuts ps1

5
推荐指数
1
解决办法
4330
查看次数

使用PS0和PS1显示每个bash命令的执行时间

似乎通过执行PS0和PS1变量中的代码(据我所知,在运行提示命令之前和之后评估),应该可以记录每个正在运行的命令的时间并将其显示在提示中。像这样:

user@machine ~/tmp
$ sleep 1

user@machine ~/tmp 1.01s
$
Run Code Online (Sandbox Code Playgroud)

但是,由于这样的事情不起作用,我很快就陷入了PS0中的录制时间:

PS0='$(START=$(date +%s.%N))'
Run Code Online (Sandbox Code Playgroud)

据我了解,START分配发生在子外壳中,因此在外壳中不可见。您将如何处理?

bash shell ps1

5
推荐指数
3
解决办法
991
查看次数