lanciare script perl da script bash

Linguaggi di programmazione: php, perl, python, C, bash, ecc.

lanciare script perl da script bash

Messaggioda genomic » mercoledì 15 marzo 2017, 16:43

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??
genomic
Prode Principiante
 
Messaggi: 5
Iscrizione: marzo 2017
Desktop: ubuntu
Distribuzione: Ubuntu 14.04.1 LTS
Sesso: Maschile

Re: lanciare script perl da script bash

Messaggioda thece » mercoledì 15 marzo 2017, 17:12

: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
Avatar utente
thece
Rampante Reduce
Rampante Reduce
 
Messaggi: 7287
Iscrizione: aprile 2007
Distribuzione: Debian 9 (Stretch) - KDE

Re: lanciare script perl da script bash

Messaggioda genomic » mercoledì 15 marzo 2017, 18:47

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
genomic
Prode Principiante
 
Messaggi: 5
Iscrizione: marzo 2017
Desktop: ubuntu
Distribuzione: Ubuntu 14.04.1 LTS
Sesso: Maschile

Re: lanciare script perl da script bash

Messaggioda thece » mercoledì 15 marzo 2017, 18:55

Hai provato ad usare le " per il comando ... a cambiare l'ordine dei parametri ... ?
Avatar utente
thece
Rampante Reduce
Rampante Reduce
 
Messaggi: 7287
Iscrizione: aprile 2007
Distribuzione: Debian 9 (Stretch) - KDE

Re: lanciare script perl da script bash

Messaggioda genomic » mercoledì 15 marzo 2017, 19:58

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

Grazie a tutti
genomic
Prode Principiante
 
Messaggi: 5
Iscrizione: marzo 2017
Desktop: ubuntu
Distribuzione: Ubuntu 14.04.1 LTS
Sesso: Maschile

Re: lanciare script perl da script bash

Messaggioda crap0101 » mercoledì 15 marzo 2017, 21:04

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
crap0101
Rampante Reduce
Rampante Reduce
 
Messaggi: 8146
Iscrizione: ottobre 2007
Località: TO
Desktop: Lubuntu
Distribuzione: Ubuntu 14.04.3 LTS
Sesso: Maschile

Re: lanciare script perl da script bash

Messaggioda thece » giovedì 16 marzo 2017, 0:25

Interessante
Avatar utente
thece
Rampante Reduce
Rampante Reduce
 
Messaggi: 7287
Iscrizione: aprile 2007
Distribuzione: Debian 9 (Stretch) - KDE


Torna a Programmazione

Chi c’è in linea

Visualizzano questa sezione: John_Marco e 9 ospiti