Mam checkSpace.sh
sprawdzanie zajętego miejsca na dysku i jeśli jest większe niż 80, zatrzymuje usługę
#!/bin/bash
percent=sudo df /media/usb | tail -n 1 | grep -E [[:digit:]]+% -o | grep -E [1-9]+ -o
if [ $percent -gt 80 ]; then
sudo service motion stop
fi
echo "used space is"
echo $percent
Ale kiedy go uruchomię sudo sh checkSpace.sh
, daje mi:
1
checkSpace.sh: 4: [: -gt: unexpected operator
used space is
linux
bash
raspberry-pi
Blitzkr1eg
źródło
źródło
sudo
uruchomićdf
polecenie? W systemach, z których korzystałem,df
działa dobrze jak zwykły użytkownik.Odpowiedzi:
Jeśli chcesz uruchomić polecenie
sudo df ....
, musisz użyć podstawienia polecenia . Zastąp zatem:Z:
Co poszło nie tak
W powyższym poleceniu zmienna powłoki
percent
jest tymczasowo ustawiona na wartość,sudo
a następnie poleceniedf /media/usb
i jego dane wyjściowe są wysyłane dotail
polecenia.percent
nie otrzymuje stałej wartości, a dane wyjściowe potoku są wysyłane do standardowego wyjścia.źródło