bash你能编写一个脚本文件来修改自己下次调用它吗?

时间:2015-11-13 18:41:16

标签: bash counter self-modifying

让我们举一个例子,我想编写一个脚本文件,不仅要记录它被调用了多少次,而且要平均它自第一次被调用的时间。时间。并且不依赖于环境变量或辅助文件来执行此操作。并报告失效天数。这意味着必须进行自我修改。现在,当加载并执行脚本时,可以更改磁盘上保存的版本,而不会影响内存中的副本,因此可以正常工作。只需更改文件副本即可。

但实现它可能有点棘手。那么你最好的解决方案是什么?

1 个答案:

答案 0 :(得分:3)

听起来有点奇怪,但bash脚本只是文本,因此如果您有权限,您可以随时编辑它:

举个例子:

#!/bin/bash
VAR=1
let VAR=VAR+1
echo Set to $VAR
perl -pi -e 's/^VAR=\d+/VAR='$VAR'/' $0

尝试一下:

$ /tmp/foo.sh
Set to 9
$ /tmp/foo.sh
Set to 10
$ /tmp/foo.sh
Set to 11