让我们举一个例子,我想编写一个脚本文件,不仅要记录它被调用了多少次,而且要平均它自第一次被调用的时间。时间。并且不依赖于环境变量或辅助文件来执行此操作。并报告失效天数。这意味着必须进行自我修改。现在,当加载并执行脚本时,可以更改磁盘上保存的版本,而不会影响内存中的副本,因此可以正常工作。只需更改文件副本即可。
但实现它可能有点棘手。那么你最好的解决方案是什么?
答案 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