我正在尝试创建一个运行的shell脚本,在.bashrc的末尾添加一行代码然后重新加载终端。这是我在install.sh中编写的代码
function addbashaliases() {
echo 'if [ -f ~/aliases/.bash_aliases ]; then
. ~/aliases/.bash_aliases
fi' >> ~/.bashrc;
source ~/.bashrc
}
什么都没发生。我应该如何编写代码以便它运行并将文本添加到.bashrc文件中?
答案 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
}