Ciao a tutti, ho fatto un elaborato su debian solo che al momento dell'esecuzione mi dà due errori, mi potete aiutare a risolvere?

I due errore sono:

  1. syntax error near unexpected token '('
  2. "caso2 (uscita del programma)")

Vi scrivo qui di seguito la traccia e lo svolgimento dell'esercizio:

Scrivere uno script in bash che permetta all'utente (utilizzando select) di ottenere informazione specifiche sui file (usando in modo opportuno ls) In particolare:
1 -> l’utente deve specificare il nome della directory (questa deve essere subdirectory della directory corrente, altrimenti messaggio d’errore con la lista delle directory presenti). Il valore «.» è ritenuto valido per indicare la directory corrente
Poi occorre mostrare a video
- Il numero di file con il permesso di esecuzione
- Il numero di file che hanno i permessi di lettura e scrittura per tutti.
- Se tutte le directory hanno permessi di esecuzione per tutti
2 -> exit

SVOLGIMENTO

#!/bin/bash
PS3='Seleziona l`opzione desiderata e scegliere tra 1 2  [ premere invio ] : '
OPTIONS=("caso1" "caso2 (uscita dal programma)")
select op in "${OPTIONS[@]}";
do
case $op  in
"caso1")
clear
echo "inserire la cartella da verificare  [premere invio!!!] "
read  cartella
if [ -d ./$cartella  ] ;
    then
echo match ok
ls -l |grep "x" | wc
ls -l | grep "r" "w" |wc
ls -l | awk '{print $1}'
else 
echo la cartella non è una subdirectory
fi
;;
"caso2 (uscita dal programma)")
clear
break
;;
*)echo invalid options ;;
esac
done

Se avete notato altri errori, o qualche consiglio/suggerimento da dare sono ben lieto di accettarli! Grazie a tutti.

chiesto 21 Mar '14, 15:50

carlocar's gravatar image

carlocar
45246

modificato 21 Mar '14, 17:14

enzotib's gravatar image

enzotib ♦♦
14.0k112186

1

@carlocar sei sicuro che questa versione che hai postato dà quegli errori? A me non li dà.

(21 Mar '14, 21:16) enzotib ♦♦ enzotib's gravatar image
1

Anche a me non dà alcun errore...

Come lo lanci?
Non conosco quali siano le differenze tra Ubuntu e Debian, però se su Ubuntu funziona ti conviene rivolgerti alla comunità di Debian...

(21 Mar '14, 21:31) dadexix86 ♦♦ dadexix86's gravatar image

Il comando che uso per eseguirlo è "./nomebash.sh", dopo aver cancellato una virgoletta di troppo adesso mi dà questi 2 errori: 1) unexpected EOF while looking for matching ' " 2) syntax error: unexpected end of file

(22 Mar '14, 14:50) carlocar carlocar's gravatar image

Se lo lanci con

bash nomebash.sh

ti dà problemi?

Guarda che in quello che hai postato qui sopra non c'è alcuna virgoletta di troppo ...

(22 Mar '14, 14:54) dadexix86 ♦♦ dadexix86's gravatar image

Ho appena provato a lanciarlo anche con bash nomebash.sh come mi hai suggerito, e mi dà sempre gli stessi errori 1) unexpected EOF while looking for matching ' " 2) syntax error: unexpected end of file

(22 Mar '14, 14:59) carlocar carlocar's gravatar image

Ma la prima versione o quella che hai modificato (e non postato)?

(22 Mar '14, 15:01) dadexix86 ♦♦ dadexix86's gravatar image

La prima versione... da sempre gli stessi errori

(22 Mar '14, 15:05) carlocar carlocar's gravatar image

A me ed enzo funziona. Magari è un problema di debian. Quale versione di bash installa Debian?

(22 Mar '14, 15:09) dadexix86 ♦♦ dadexix86's gravatar image

Non credo sia un problema di Debian, secondo me quella riportata sopra non è la versione dello script che sta usando.

(22 Mar '14, 15:12) enzotib ♦♦ enzotib's gravatar image

Io ho installato la versione 7.1

(22 Mar '14, 15:13) carlocar carlocar's gravatar image

@carlocar, modifica la domanda e incolla la versione corretta che stai usando, e poi non modificarla più mentre discutiamo, altrimenti non ci capiamo niente. Fai uso, nella domanda, della formattazione adatta al codice sorgente.

(22 Mar '14, 15:16) enzotib ♦♦ enzotib's gravatar image

7.1? Non credo proprio... L'ultima versione di bash è la 4.2. Quale versione hai di bash?

(22 Mar '14, 15:23) dadexix86 ♦♦ dadexix86's gravatar image

vi posto la versione che cerco di eseguire:

#!/bin/bash PS3='Seleziona l'opzione desiderata e scegliere tra 1 e 2 e premere invio:' OPTIONS=("caso1" "caso2 (uscita dal programma)") select op in "${OPTIONS[@]}"; do case $op in "caso1") clear echo "Inserire la cartella da verificare e premere invio" read cartella if[-d./$cartella]; then echo match ok ls -l | grep "x"| wc ls -l | grep "r" "w"| wc ls -l | awk '{print $1}' else echo "la cartella non è una subdirectory" fi ;; "caso2 (uscita del programma)") clear break ;; *) echo invalid options;; esac done

(22 Mar '14, 15:23) carlocar carlocar's gravatar image

@dadexix86, credo si riferisse a Debian 7.1

(22 Mar '14, 15:24) enzotib ♦♦ enzotib's gravatar image

Sono nuovo, non so come faccio a renderla leggibile, scusate

(22 Mar '14, 15:24) carlocar carlocar's gravatar image

Si infatti di debian ho la versione 7.1

(22 Mar '14, 15:28) carlocar carlocar's gravatar image

Comunque ho la 4.2.37(1)-release di bash

(22 Mar '14, 15:32) carlocar carlocar's gravatar image

@carlocar: vedo due errori

  1. non puoi usare una virgoletta singola dentro virgolette singole, a meno che non fai una cosa tipo questa: PS3='Seleziona l'\''opzione desiderata e scegliere tra 1 e 2 e premere invio:'
  2. una volta scrivi "uscita dal programma" e un'altra "uscita del programma", sarebbe il caso che non scrivessi a mano due volte la stessa cosa, sbagliando, ma che usassi le veriabili
(22 Mar '14, 15:54) enzotib ♦♦ enzotib's gravatar image

@enzotib: grazie ora funziona!

(22 Mar '14, 16:00) carlocar carlocar's gravatar image

concordo con dadexix86. copiato/incollato da questa pagina in un file e testato su Red Hat Enterprise Linux ES release 4 (Nahant Update 3) funziona. Prova a fare la stessa cosa, magari nel tuo file l'errore c'è.

(24 Mar '14, 19:07) letizia letizia's gravatar image
Scrivi tu la prima risposta!
abilita/disabilita anteprima

Segui questa domanda

Via email:

Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui

Via RSS:

Risposte

Risposte e commenti

Basi di markdown

  • *corsivo* o __corsivo__
  • **grassetto** o __grassetto__
  • collegamento:[testo](http://url.com/ "titolo")
  • immagine?![alt testo](/path/img.jpg "titolo")
  • elenco numerato: 1. Foo 2. Bar
  • per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
  • è supportato anche semplice HTML

Tag:

×93
×48

domanda posta: 21 Mar '14, 15:50

domanda visualizzata: 646 volte

ultimo aggiornamento: 24 Mar '14, 19:07

Chiedi è un servizio di supporto gestito da Ubuntu-it. Contattaci!

powered by OSQAPostgreSQL database
Ubuntu e Canonical sono marchi registrati da Canonical Ltd.