问题描述
最近升级Fedora 30 -> Fedora 31
后,我发现当我从VSCode中为正在处理的项目启动终端时,会看到以下消息:
bash: sed: command not found
~/data/Programming/JS/React vgorcinschi $
它在抱怨sed
,因为我在~/.bashrc
中有一个脚本试图在PS1
中包含有关git分支的信息:
# somewhere in ~/.bashrc
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\[\033[32m\]\w\[\033[33m\]\$(parse_git_branch)\[\033[00m\] \u $ "
如果我在同一终端中执行man sed
,它将以同样的方式抱怨man
。如果我打开系统终端并导航到同一位置,则路径将如下所示:
~ vgorcinschi $ cd ~/data/Programming/JS/React
~/data/Programming/JS/React (ch14) vgorcinschi $ echo $PATH
./node_modules/.bin:/home/vgorcinschi/.nvm/versions/node/v10.6.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/vgorcinschi/.local/bin:/home/vgorcinschi/bin:/home/vgorcinschi/.local/bin:/home/vgorcinschi/bin:/usr/local/java/jdk1.8.0_231/bin:/opt/maven/bin:/snap/bin
NB注意sed是如何在同一目录中工作的。
从VS Code终端重复echo $PATH
会产生以下结果:/home/vgorcinschi/data/Programming/JS/React/node_modules/.bin
我认为可能会出现这个问题,所以这些是我的~/.config/Code/User/settings.json
的内容:
{
"git.enableSmartCommit": true,"metals.javaHome": "/usr/local/java/jdk1.8.0_231","window.zoomLevel": 0,"terminal.integrated.shell.linux": "/usr/bin/bash","editor.tabSize": 2,"editor.detectIndentation": false,"terminal.external.linuxExec": "bash"
}
以下内容也可能非常重要。上面的目录在HDD(/dev/sdb1
)上的分区上,我的~/.bashrc
和~/.bash-profile
在SSD(/dev/mapper/fedora-home
)上。
如果在主分区(在SSD上)中打开带有VS Code的空目录,则Code终端没有此问题。但是在升级之前,我也没有在另一个分区上安装它-这只是两天前。
所以我不确定到底是什么原因造成的,但是希望有人可以帮助我解决这个问题。
更新[2020.10.30]
由于.node_modules
中的这些行,~/.bashrc
出现在VSCode终端内的路径上:
if [ -d "$PWD/node_modules/.bin" ]; then
PATH="$PWD/node_modules/.bin"
fi
VS Code版本
Version: 1.50.1
Commit: d2e414d9e4239a252d1ab117bd7067f125afd80a
Date: 2020-10-13T14:44:48.716Z
Electron: 9.2.1
Chrome: 83.0.4103.122
Node.js: 12.14.1
V8: 8.3.110.13-electron.0
OS: Linux x64 5.8.15-101.fc31.x86_64
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)