Переменная в Bash Script, которая сохраняет значение в последний раз
Можно ли создать Bash script с постоянными значениями переменных?
Например, я инициализирую переменную с 0, когда script запускается в первый раз (в течение определенного времени), и переменная автоматически увеличивается с каждым запуском script.
Ответ 1
вы не можете, но вы можете использовать файл для этого
#!/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
Ответ 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, где каждый пользователь имеет различную коллекцию данные. Записи хранятся в домашнем каталоге пользователя.
Здесь это самые интересные функции из исходного кода: