我刚刚在我的Windows 7虚拟机上安装了 MSYS2 ,到目前为止我唯一真正做过的就是通过添加几行来修改我的〜/ .bashrc文件。
我添加到文件中的唯一内容是一些别名cmds,一个导出cmd,我修改了PS1变量。见下文:
alias ll='ls -l'
alias la='ls -A'
alias cls='clear'
export PATH="$PATH:/home/Matt/bin"
PS1=$(print '\033]0;${PWD}\n\033[32m${USER}@${HOSTNAME}:\033[33m${PWD/${HOME}/\~}>\033[0m ')
除了上面那些东西之外,那就是我真正做过的。因此,在对〜/ .bashrc 进行更改后,我从MSYS2的命令提示符退出,然后重新启动MSYS2以使.bashrc更改生效。 我知道我可以重新获取该文件,但我很快就退出并重新启动了......
然后,在我重新启动MSYS2之后,这打印为终端中的第一行 - > “无法找到文件” 然后每次在cmd提示符下按Enter键时,它会在下一个提示打印到屏幕之前打印“找不到文件” ,如下所示:
Terminal shows this when I start-up MSYS2:
--------------------------------------------------------------------
Can't find file
Matt@My-Win7VM:~> ls -l
total 0
drwxr-xr-x 1 My-Win7VM+Matt My-Win7VM+None 0 Jun 3 12:01 bin
Can't find file
Matt@My-Win7VM:~>
Can't find file
Matt@My-Win7VM:~>
Can't find file
Matt@My-Win7VM:~>
--------------------------------------------------------------------
任何想法,它可以谈论的文件似乎无法找到..?
任何想法或建议将不胜感激。
先谢谢,
马特
答案 0 :(得分:1)
好的我觉得我发现了问题。
我运行 env 命令, PS1 环境变量显示此
PS1=Can't find file \033]0;${PWD}\n\033[1;31m${USER}@${HOSTNAME}:\033[1;34m${PWD/${HOME}/\~}>\033[0m
因此,我将export PS1=${print ...}
行从我的~/.bashrc
文件中删除为双引号变量赋值,而不是使用print
命令。
因为看起来print
命令试图从“/ c / Windows / system32 / print”运行,如果你传递一个字符串,你可以看到错误显示:
$ which print
/c/Windows/system32/print
$ print "Hello World"
Can't find file Hello World
正如您所看到的,该print命令需要一个文件名,而不是一个字符串。因此,将其切换为如下所示的赋值语句,修复了错误:
export PS1="\033[1;31m${USER}@${HOSTNAME}:\033[1;34m${PWD/${HOME}/\~}>\033[0m "
现在一切都好了。
修改强> 进入新问题,当我切换dirs时,提示中的目录没有改变...发现我使用了错误的方法。所以我找到了PS1开关,现在这次更好了:
PS1="\033[1;31m\u@\h:\033[0m\033[1;34m\w>\033[0m "
-Matt
答案 1 :(得分:0)
您似乎已从$PS1
/etc/profile
尝试$PS1
中的/etc/bash.bashrc
变量:
# Set a default prompt of: user@host, MSYSTEM variable, and current_directory
PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[35m\]$MSYSTEM\[\e[0m\] \[\e[33m\]\w\[\e[0m\]\n\$ '