2013-05-22 17 views
5

Mam problemy naprawienia błędu w skrypcie bash, ja poważnie nie mają pojęcia, co zrobiłem źle, każda pomoc jest mile widziana dziękibash, nie znaleziono komendy

[[email protected] ~]$ sh ListFich.sh test 
Synthese, Question 2 
ListFich.sh: line 9: [-d: command not found 
Il n'y a aucun repertoire qui se nomme test 
ListFich.sh: line 15: [-f: command not found 
Il n'y a aucun fichier qui se nomme test 
[[email protected] ~]$ 
#!bin/bash 

echo "Synthese, Question 2" 

if test $# -eq 0; then 
    echo "Argument Manquants" 
    exit 1 
else 
    if [-d $1];then 
     ls -d $1 
     exit 1 
    else 
     echo "Il n'y a aucun repertoire qui se nomme $1" 
    fi 
    if [-f $1]; then 
     if [ -s $1]; then 
      ls -l $1 
      exit 1 
     else 
      ls -l $1 
      echo "Le fichier $1 est vide" 
      exit 1 
     fi 
    else 
     echo "Il n'y a aucun fichier qui se nomme $1" 
    fi 
fi 
+2

Wydaje się, że wychodzisz 1 z sukcesu; zgodnie z konwencją, która wskazuje na niepowodzenie. – chepner

Odpowiedz

8

Dodaj space po[ i przed].

[ -d $1 ] 
^ ^
+0

Bardzo dziękuję –

+0

Nie ma za co. – tarrsalah

+2

@JoeE: Podczas gdy jesteś na tym, rozważ użycie potężniejszych wbudowanych bashów, które dostarczają dodatkowych operatorów (= ~, <, >) i usuwają potrzebę cytowania twoich operandów. – DevSolar

1

Trzeba spacje przed i po [ i ]. Aby uzyskać szczegółowe informacje, patrz help [.

Powiązane problemy