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

Linux 创建一个脚本,将代码行添加到.bashrc,然后重新加载终端,linux,bash,Linux,Bash,我试图创建一个shell脚本,一旦运行,在.bashrc的末尾添加一行代码,然后重新加载终端。这是我在install.sh中编写的代码 function addbashaliases() { echo 'if [ -f ~/aliases/.bash_aliases ]; then . ~/aliases/.bash_aliases fi' >> ~/.bashrc; source ~/.bashrc } 什么都没有发生。我应该如何编写代

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

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

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

我只是在更正您的脚本。根据你的逻辑,它应该如下所示

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

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

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

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

#!/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
这意味着您应该确保:

  • 脚本调用
    addBashAlias
    函数
  • ~/aliases/.bash\u aliases
    文件存在(我希望有更类似于
    ~/.aliases/.bash\u aliases
通过检查~/.bashrc文件的内容,并在
命令后打印
.bash\u别名
文件上设置的一些环境变量,可以检查脚本是否已正确运行

#!/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
#/bin/bash
函数addBashAlias(){
#在.bashrc上添加源bash_别名

cat>~/.bashrc为了清晰起见,我更喜欢使用
cat
命令而不是
echo
命令将信息附加到
.bashrc
文件中。但是,使用
echo
命令也可以

#!/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
这意味着您应该确保:

  • 脚本调用
    addBashAlias
    函数
  • ~/aliases/.bash\u aliases
    文件存在(我希望有更类似于
    ~/.aliases/.bash\u aliases
通过检查~/.bashrc文件的内容,并在
命令后打印
.bash\u别名
文件上设置的一些环境变量,可以检查脚本是否已正确运行

#!/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
!/bin/bash
函数addBashAlias(){
#在.bashrc上添加源bash_别名

cat>~/.bashrc那么什么不起作用呢?别忘了实际调用您定义的函数
哪行代码的末尾添加一行代码?您并没有试图在脚本中执行类似的操作。您只是检查.bash\u别名文件是否可用(如果可用),只要运行它并输出到.bashrc即可。为什么想要一个函数附加那一行而不是仅仅附加那一行吗?它肯定只会被使用一次吗?那么什么不起作用呢?别忘了实际调用你定义的函数
哪一行代码的末尾添加一行代码?你不想在脚本中做任何类似的事情。你只是在检查.bash_别名文件可用(如果可用),您只需运行它并输出到.bashrc。为什么希望函数附加该行而不是仅附加该行?它肯定只会使用一次?