我花了一些时间来构建这个方便的bash脚本,该脚本通过stdin
接受输入。我从这个问题的最高答案中得到了这个主意:Pipe input into a script
但是,我做了一些非常愚蠢的事情。我在终端中输入了以下内容:
echo '{"test": 1}' > ./myscript.sh
我打算将其|
传递到脚本中,而不是重定向>
的{{1}}输出。
直到我生命中的这一刻,我从未以这种方式无意中破坏了任何文件。老实说,直到今天我才犯了这个错误,我感到很惊讶。 :D
无论如何,现在我让自己变得偏执,我会再次这样做。除了将脚本标记为只读或对其进行备份之外,我还能采取其他措施来保护自己吗?首先编写一个接受来自echo
的输入的脚本是不好的做法吗?
答案 0 :(得分:3)
是的,您可以做一件事-将脚本检入源代码控制存储库(git,svn等)。
bash脚本是代码,您编写的所有非平凡代码都应检入源代码控制(并定期提交更改),以便在发生这种情况时,您可以恢复最近提交的代码版本的文件,然后继续。答案 1 :(得分:2)
这是一个非常开放的问题,但是我通常将脚本放在全局bin文件夹中(~/.bin
左右)。这使我可以将它们作为myscript
而不是path/to/myscript.sh
来调用,因此,如果我不小心使用了>
而不是|
,它只会在当前目录中以该名称创建文件目录-实际上从不~/.bin
。