Nowe posty

Autor Wątek: [skrypt BASH] prawo do zapisu.  (Przeczytany 1554 razy)

yahou

  • Gość
[skrypt BASH] prawo do zapisu.
« dnia: 2014-12-02, 20:22:27 »
Cześć!
czy ktoś z Was może mi powiedzieć jak stworzyć bramkę, która wyłączy program jeżeli parametr pierwszy nie ma prawa do zapisu, a przepusci gdy takowe ma?

Naskrobalem cos takiego. Prawde mowiac nie wiem jak korzystac z testow, stad ten problem. Caly czas probue wynik testu przypisac do zmiennej, ale nie wychodzi.

Kawalek kodu:
#NIE DZIAŁA- TEST 3- PRAWO DO ZAPISU
#++++++++++++++++++++++++++++++++++++++++++++
echo
echo warunek 3- plik1 musi miec prawo zapisu

prawo=`test -w $1`
if [ $prawo -ne 0 ]
   then  
   echo ERROR... brak praw zapisu
   exit 1

   else
   echo mamy prawa zapisu
   
   fi
pozdrawiam.

alvaro

  • Gość
[skrypt BASH] prawo do zapisu.
« Odpowiedź #1 dnia: 2014-12-02, 22:23:49 »
Można to zrealizować w następujący sposób:
#!/usr/bin/env bash

if [[ -w "$1" ]]; then
  echo "ok"
else
  echo "fail" >&2
  exit 1
fi
wklejka 1

Dobrym pomysłem może być wykorzystanie w takim przypadku negacji:
#!/usr/bin/env bash

if [[ ! -w "$1" ]]; then
  echo "fail" >&2
  exit 1
fi

echo "ok"
wklejka 2

Skrócona wersja:
#!/usr/bin/env bash

[[ -w "$1" ]] || { echo "fail" >&2; exit 1; }

echo "ok"
wklejka 3