Zrobiłem sobie wzorując się na podobnych skryptach taki skrypt.
#!/bin/bash
if [$# -ne 1]
then
echo "niepoprawna liczba arg"
echo "wpisz nazwę katalogu jako argument"
exit
fi
if [-d $1]
then
cd $1
for plik in *
do
rm -fr $plik
done
fi
Działa on tak że jeżeli poda się katalog jako argument skryptu to usuwa wszystko z katalogu. Nie jest dla mnie jasna ta linijka
if [$# -ne 1]
przeprowadzany jest test -e plik istnieje -n wyrażenie ma długość większą niż 0 i musi być podany jeden argument i działa to dobrze. Tylko nie rozumiem tego warunku. Sprawdzane jest to czy jest podany jeden argument i jeżeli jest skrypt przechodzi dalej a jeżeli są dwa to pojawia się komunikat. Tylko jakoś nielogiczne jest to dla mnie jeżeli po sprawdzeniu warunku jest
then
echo "niepoprawna liczba arg"
echo "wpisz nazwę katalogu jako argument"
no to jeżeli jest 1 (czyli podany zostanie jeden katalog jako argument) tak jak w instrukcji if a później jest then to czemu skrypt idzie dalej? Na przykładzie drugiej instrukcji
if [-d $1]
then
cd $1
Tutaj wszystko jest logiczne jeżeli parametr przekazany do skryptu jest katalogiem then cd katalog.