保护脚本免受错误破坏

时间:2018-07-18 18:25:40

标签: bash

我花了一些时间来构建这个方便的bash脚本,该脚本通过stdin接受输入。我从这个问题的最高答案中得到了这个主意:Pipe input into a script

但是,我做了一些非常愚蠢的事情。我在终端中输入了以下内容:

echo '{"test": 1}' > ./myscript.sh

我打算将其|传递到脚本中,而不是重定向>的{​​{1}}输出。

直到我生命中的这一刻,我从未以这种方式无意中破坏了任何文件。老实说,直到今天我才犯了这个错误,我感到很惊讶。 :D

无论如何,现在我让自己变得偏执,我会再次这样做。除了将脚本标记为只读或对其进行备份之外,我还能采取其他措施来保护自己吗?首先编写一个接受来自echo的输入的脚本是不好的做法吗?

2 个答案:

答案 0 :(得分:3)

是的,您可以做一件事-将脚本检入源代码控制存储库(git,svn等)。

bash脚本是代码,您编写的所有非平凡代码都应检入源代码控制(并定期提交更改),以便在发生这种情况时,您可以恢复最近提交的代码版本的文件,然后继续。

答案 1 :(得分:2)

这是一个非常开放的问题,但是我通常将脚本放在全局bin文件夹中(~/.bin左右)。这使我可以将它们作为myscript而不是path/to/myscript.sh来调用,因此,如果我不小心使用了>而不是|,它只会在当前目录中以该名称创建文件目录-实际上从不~/.bin