Bash脚本中的variables保持上次运行时的值

我可以用持久variables值创build一个Bash脚本吗?

例如,当脚本第一次运行时(在特定的时间限制内),我用0初始化一个variables,每次脚本运行时variables自动增加。

你不能,但你可以使用一个文件来做到这一点

#!/bin/sh # if we don't have a file, start at zero if [ ! -f "/tmp/value.dat" ] ; then value=0 # otherwise read the value from the file else value=`cat /tmp/value.dat` fi # increment the value value=`expr ${value} + 1` # show it to the user echo "value: ${value}" # and save it for next time echo "${value}" > /tmp/value.dat 

恐怕你得把状态保存在某个文件里。 诀窍是把它放在用户可以写入的地方。

 yourscriptvar=0 if [ -e "$HOME/.yourscriptvar" ] ; then yourscriptvar=$(cat "$HOME/.yourscriptvar") fi # do something in your script #save it output the file echo $yourscriptvar > "$HOME/.yourscriptvar" 

前几天我也有同样的问题,我写了自己的工具来完成这项工作,因为没有其他办法可以做类似的事情。

gvar是一个纯粹的Bash键值存储,每个用户都有不同的数据集合。 记录存储在用户的主目录中。

这里是源代码中最有趣的功能:

 get_variable() { cat $FILE | grep -w $1 | cut -d'=' -f2 } set_variable() { echo $1=$2 >> $FILE } remove_variable() { sed -i.bak "/^$1=/d" $FILE }