lanciare script perl da script bash

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
genomic
Prode Principiante
Messaggi: 5
Iscrizione: mercoledì 15 marzo 2017, 14:59
Desktop: ubuntu
Distribuzione: Ubuntu 14.04.1 LTS
Sesso: Maschile

lanciare script perl da script bash

Messaggio da genomic »

Salve ragazzi, sono nuovo del gruppo e approfitto per salutare ttutti i partecipanti.
Avrei un problemino da risolvere e nello specifico ho un script perl chiamato cds_extractor il quale processa un file di testo di tipo .gbk estraendone alcuni campi che vengono scritti in un nuovo file con estensione .faa
il lancio dello script avviene nel seguente modo

perl cds_extractor.pl -i nome_file.gbk -p

dove -p è una opzione che è necessario fornire per far si che lo script estragga solo alcuni tipi di campi del .gbk. Fornire tale opzione è obbligatorio.
Volendo far lanciare lo script perl da uno script bash ho creato il file extractor.sh:
#!/bin/bash
perl cds_extractor.pl -i nome_file.gbk -p

lanciando lo script bash lo script perl viene correttamente eseguito ma l'opzione -p non viene letta come opzione e lo script si interrompe dando errore e chiedendomi di specificarla.
Come posso risolvere??
Avatar utente
thece
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 12949
Iscrizione: lunedì 23 aprile 2007, 14:16
Distribuzione: Debian 12 (Bookworm) - KDE

Re: lanciare script perl da script bash

Messaggio da thece »

:ciao:

forse ho capito male ma, da shell a seguito del comando

Codice: Seleziona tutto

perl cds_extractor.pl -i nome_file.gbk -p
devi fornire qualche argomento? Se SI, modifica il tuo script così

Codice: Seleziona tutto

#!/bin/bash

perl cds_extractor.pl -i nome_file.gbk -p $1

exit 0
poi richiama il tuo script così

Codice: Seleziona tutto

./mioScript.sh ARGOMENTO
genomic
Prode Principiante
Messaggi: 5
Iscrizione: mercoledì 15 marzo 2017, 14:59
Desktop: ubuntu
Distribuzione: Ubuntu 14.04.1 LTS
Sesso: Maschile

Re: lanciare script perl da script bash

Messaggio da genomic »

No lo script è completo non devo fornire nessun argomento. Quello che succede è che lanciando lo script perl da bash l'opzione -p non viene riconosciuta e lo script mi restituisce un errore come se non fosse stata specificata
Avatar utente
thece
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 12949
Iscrizione: lunedì 23 aprile 2007, 14:16
Distribuzione: Debian 12 (Bookworm) - KDE

Re: lanciare script perl da script bash

Messaggio da thece »

Hai provato ad usare le " per il comando ... a cambiare l'ordine dei parametri ... ?
genomic
Prode Principiante
Messaggi: 5
Iscrizione: mercoledì 15 marzo 2017, 14:59
Desktop: ubuntu
Distribuzione: Ubuntu 14.04.1 LTS
Sesso: Maschile

Re: lanciare script perl da script bash

Messaggio da genomic »

Risolto cambiando l'ordine dei comandi mettendo -p prima di -i.
Mi piacerebbe comunque capire perché succede questo!!

Grazie a tutti
Avatar utente
crap0101
Rampante Reduce
Rampante Reduce
Messaggi: 8242
Iscrizione: martedì 30 ottobre 2007, 6:33
Desktop: LXDE
Distribuzione: Ubuntu 18.04.1 LTS
Sesso: Maschile
Località: TO
Contatti:

Re: lanciare script perl da script bash

Messaggio da crap0101 »

perchè lo interpreta come opzione del comando `perl` e non di quello che stai eseguendo tramite appunto l'interprete perl.
Per evitare questi problemi generalmente si usa `--` che indica all'interprete di turno (perl, python, bash, ecc) che gli argomenti successivi non sono più sue opzioni, per cui

Codice: Seleziona tutto

perl -opzione_perl valore -- programma -opzione_programma valore
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
Avatar utente
thece
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 12949
Iscrizione: lunedì 23 aprile 2007, 14:16
Distribuzione: Debian 12 (Bookworm) - KDE

Re: lanciare script perl da script bash

Messaggio da thece »

Interessante
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 9 ospiti