Nowe posty

xx Problem ze sterownikami. (5)
2024-04-13, 21:25:16
xx Instalacja xfce4 (2)
2024-04-13, 16:20:17
xx Serie kompilacji bez instalacji dla “emerge” w Gentoo (2)
2024-04-08, 18:40:04
xx Plasma 6 w Neonie ssie trochę mniej ... (17)
2024-04-05, 10:03:46
xx Problem z Linux Lite po instalacji (3)
2024-04-03, 14:23:40
xx Jak właczyć num locka przy starcie systemu debian 12? (12)
2024-04-02, 17:43:54
xx Brak dźwieku w systemie. (5)
2024-04-02, 16:13:41
xx Dystrybucja pod HP Omen (7)
2024-03-29, 11:33:05
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
xx Ile pingwinów? (1)
2024-03-27, 08:59:24

Autor Wątek: [skrypt BASH] prawo do zapisu.  (Przeczytany 1538 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