Bash 脚本中的变量保留上次运行时的值
- 2024-11-11 08:27:00
- admin 原创
- 191
问题描述:
我可以创建具有持久变量值的 Bash 脚本吗?
例如,我在脚本第一次运行时(在特定时间限制内)用 0 初始化一个变量,并且每次脚本运行时该变量都会自动增加。
解决方案 1:
你不能,但你可以用文件来做
#!/bin/bash
valuefile="/tmp/value.dat"
# if we don't have a file, start at zero
if [ ! -f "$valuefile" ]; then
value=0
# otherwise read the value from the file
else
value=$(cat "$valuefile")
fi
# increment the value
value=$((value + 1))
# show it to the user
echo "value: ${value}"
# and save it for next time
echo "${value}" > "$valuefile"
解决方案 2:
恐怕您必须将状态保存在某个文件中。诀窍是将其放在用户可以写入的地方。
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"
解决方案 3:
几天前我遇到了同样的问题,我编写了自己的工具来完成这项工作,因为没有其他方法可以做类似的事情。
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
}
相关推荐
热门文章
项目管理软件有哪些?
热门标签
云禅道AD