Pagina 1 di 1

lanciare script perl da script bash

Inviato: mercoledì 15 marzo 2017, 15:43
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??

Re: lanciare script perl da script bash

Inviato: mercoledì 15 marzo 2017, 16:12
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

Re: lanciare script perl da script bash

Inviato: mercoledì 15 marzo 2017, 17:47
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

Re: lanciare script perl da script bash

Inviato: mercoledì 15 marzo 2017, 17:55
da thece
Hai provato ad usare le " per il comando ... a cambiare l'ordine dei parametri ... ?

Re: lanciare script perl da script bash

Inviato: mercoledì 15 marzo 2017, 18:58
da genomic
Risolto cambiando l'ordine dei comandi mettendo -p prima di -i.
Mi piacerebbe comunque capire perché succede questo!!

Grazie a tutti

Re: lanciare script perl da script bash

Inviato: mercoledì 15 marzo 2017, 20:04
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

Re: lanciare script perl da script bash

Inviato: mercoledì 15 marzo 2017, 23:25
da thece
Interessante