创建一个脚本,为.bashrc添加代码行,然后重新加载终端

时间:2018-04-05 09:15:35

标签: linux bash

我正在尝试创建一个运行的shell脚本,在.bashrc的末尾添加一行代码然后重新加载终端。这是我在install.sh中编写的代码

function addbashaliases() {
  echo 'if [ -f ~/aliases/.bash_aliases ]; then
          . ~/aliases/.bash_aliases
        fi' >> ~/.bashrc;
  source ~/.bashrc
}

什么都没发生。我应该如何编写代码以便它运行并将文本添加到.bashrc文件中?

2 个答案:

答案 0 :(得分:2)

为了清楚起见,我更喜欢使用.bashrc命令而不是cat将信息附加到echo文件中。但是,这也应该使用您的echo命令。

这说你应该确保:

  • 脚本调用addbashaliases函数
  • ~/aliases/.bash_aliases文件存在(我希望有更类似于~/.aliases/.bash_aliases的内容)

您可以通过检查〜/ .bashrc文件的内容并在.bash_aliases命令后打印source文件上设置的一些环境变量来检查脚本是否正确运行。

#!/bin/bash

function addbashaliases() {
  # Add source bash_aliases on .bashrc
  cat >> ~/.bashrc << EOT
if [ -f ~/aliases/.bash_aliases ]; then
  . ~/aliases/.bash_aliases
fi
EOT

  # Reload current environment
  source ~/.bashrc
}

# Execute the function                                                                                                                                                                                                                                                         
addbashaliases

答案 1 :(得分:1)

我只是纠正你的剧本。根据你的逻辑,它应该如下所示。

function addbashaliases() {
   if [ -f ~/aliases/.bash_aliases ]; then
      output=$(. ~/aliases/.bash_aliases)
      echo $output >> ~/.bashrc
   fi
  source ~/.bashrc
}