GNU/Linux >> Znalost Linux >  >> Linux

Proměnná ve skriptu Bash, která si zachovává hodnotu z posledního spuštění

Obávám se, že stav musíte někam uložit do souboru. Trik je vložit jej někam, kam bude moci uživatel psát.

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"

Nemůžete, ale můžete k tomu použít soubor

#!/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"

Linux
  1. Spuštění souboru skriptu přes Ssh přes Sudo?

  2. Potrubí do/ze schránky ve skriptu Bash

  3. atomic create soubor, pokud neexistuje z bash skriptu

  1. Jak načíst poslední řádek textového souboru do proměnné pomocí Bash?

  2. Je bezpečné otevřít soubor, který je zapsán spuštěným skriptem?

  3. Bash skript pro odstranění nejstaršího souboru ze složky

  1. Zabránění souběžnému spuštění bash skriptu

  2. bash + čtení proměnných a hodnot ze souboru pomocí bash skriptu

  3. Bash skript, který ukazuje měnící se hodnoty v reálném čase z příkazů