如何在linux中防止重复更改文本文件?

时间:2016-06-07 06:05:55

标签: linux shell

我已使用此shell脚本

成功更改了linux中的文本
vi -e .bash_profile << END
i
PATH=\$PATH:\$HOME/bin:/usr/pgsql-9.4/bin
export PATH
PGDATA=/usr/pgsql-9.4/data
export PGDATA
.
w
q
END

但我有一个问题。

如果我执行两次脚本,则在文本文件中复制。

所以,我想防止这种情况发生。我该如何解决?

1 个答案:

答案 0 :(得分:0)

那取决于...如果字符串"PATH=$PATH:$HOME/bin:/usr/pgsql-9.4/bin"可以出现在文件的其他位置,那么我们就不能将它用作vi已经完成其工作的指示器。但如果字符串没有出现,我们可以包装整个事情

grep -q 'PATH=[$]PATH:[$]HOME/bin:/usr/pgsql-9.4/bin' .bash_profile
if [ $? -eq 1 ]
then
   # do your vi stuff here
fi

你可以用

替换if的东西
test $? -eq 0 && exit 0

如果你在vi之后不打算做任何事情