最近我安装了 Android Studio。现在我想将 android-studio/bin/ 永久添加到 PATH 环境变量中,Session-wide environment variables
而不是System-wide environment variables
。为此,我尝试~/.profile
按照说明进行编辑这里。所以我在最后有这些~/.profile
:
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH:/usr/local/Android/android-studio/bin"
fi
然后我重新登录以初始化变量。但是当我studio.sh
在终端中运行时,我得到了这个:
studio.sh:未找到命令
以下是$PATH
和的结果echo $PATH
:
$ $PATH
bash: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:
No such file or directory
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
我也确信~/.bash_profile
不~/.bash_login
存在。现在问题的原因是什么?我该如何解决?
编辑:
我将结尾改为~/.profile
这样,但是不起作用:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
PATH="$PATH:/usr/local/Android/android-studio/bin"
fi
答案1
看起来您编辑了此代码片段:
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
默认情况下包含在内~/.profile
。
导致你这样做的答案让 IMNSHO 感到困惑。
我建议您将该代码改回以前的样子,并在其下方添加一个新行:
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
PATH="$PATH:/usr/local/Android/android-studio/bin"
然后,下次登录时,PATH 都应该改变,无论$HOME/bin
是否存在。
答案2
好的,这里有几个问题:
使用
echo $PATH
而不是$PATH
来检查!原因是 bash
$PATH
到处都用该变量的内容替换,因此只需运行$PATH
就会尝试执行该变量的内容,这对于 bash 解释器来说是无意义的。您也应该
~/.profile
添加您添加的内容。~/.bashrc
"$HOME/bin"
通过运行确保存在ls -d $HOME/bin
。如果出现类似错误bash: ls: No such file or directory.
,则表示它不存在。如果存在,则应获得类似 的输出/home/[username]/bin
。
如果所有这些都满足,那么你应该可以开始了。如果不满足,那么只需使用此命令:cd [path_to_studio_directory]; ./studio.sh
。这样,你将从该文件夹内启动并保证其执行。