通过bash中的〜/ .bash_profile将目录添加到我的路径中?

时间:2013-03-19 19:39:07

标签: bash shell path .bash-profile

我想通过〜/ .bash_profile文件向我的PATH添加一个目录,虽然我的Ubuntu中没有这样的文件。我有以下代码,它将检查人们是否有该文件,如果没有,将创建一个并添加所有现有路径目录和用户输入的目录。

#!/bin/bash

echo "Please enter a directory that you want to add to your PATH: "
read dr

if [ -f ~/.bash_profile ]
then
    # Add the read 'dr' directory to the end of the line that starts 
    # with PATH=, in your ~/.bash_profile file
    source ~/.bash_profile
else
    echo "PATH=$PATH:$dr" > ~/.bash_profile
    echo "export PATH" >> ~/.bash_profile
    source ~/.bash_profile
fi

关键是,如果文件已经存在,我不知道如何检查以找到以PATH =开头的行,然后将用户输入的目录添加到该行的末尾。请注意,这只是给我的练习。我应该通过〜/ .bash_profile将用户输入的目录添加到PATH中。虽然,我不知道为什么有人应该费心使用〜/ .bash_profile将新目录添加到PATH。

2 个答案:

答案 0 :(得分:1)

查看要添加到新.bash_profile的行:

echo "PATH=$PATH:$dr" > ~/.bash_profile
echo "export PATH" >> ~/.bash_profile

第一个已将$dr添加到PATH,无论PATH中已有什么。这意味着即使.bash_profile已经存在,您也可以执行相同的操作:只需添加一个追加另一个目录的新行:

touch ~/.bash_profile
echo "export PATH=\$PATH:$dr" >> ~/.bash_profile

有几点需要注意:

  1. .bash_profile确保touch存在;然后你不需要测试它的存在。

  2. 只需要一行;您可以在使用export标记导出到环境时设置变量。

  3. 逃离$中的$PATH,以便将一个字面的美元符号写入.bash_profile; $dr不需要相同的内容,因为您希望扩展以便添加正确的目录。

  4. 使用>>附加此新行,因此您不会覆盖现有文件。

答案 1 :(得分:-2)

~/.bashrc 

在家中试用此文件。