[英]Variable in Bash Script that keeps it value from the last time running
我可以創建具有持久變量值的 Bash 腳本嗎?
例如,當腳本第一次運行時(在特定的時間限制內),我用 0 初始化一個變量,並且每次腳本運行時變量都會自動增加。
你不能,但你可以使用文件來做到這一點
#!/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"
幾天前我遇到了同樣的問題,我已經編寫了自己的工具來完成這項工作,因為沒有其他方法可以做類似的事情。
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
}
恐怕您必須將狀態保存在某個文件中。 訣竅是將它放在用戶能夠寫入的地方。
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"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.