concatenazione "atipica" di comandi in shell
-
novainvicta
- Scoppiettante Seguace

- Messaggi: 811
- Iscrizione: sabato 6 ottobre 2007, 11:32
- Contatti:
concatenazione "atipica" di comandi in shell
salve!
ho già visto che è possibile eseguire più comandi shell su una sola riga aggiungendo separandogli con il carattere |,
io devo fare una cosa un pochino diversa..
avete presente quando avviate un programma da terminale che chiede degli input, come "inserisci e-mail, nome, cognome" o cose simili..
ecco.. devo fare proprio questo.. oltre ad avviare il programma X, prevedere dentro la riga di comando stessa anche i parametri successivi
come si fa?
ho già visto che è possibile eseguire più comandi shell su una sola riga aggiungendo separandogli con il carattere |,
io devo fare una cosa un pochino diversa..
avete presente quando avviate un programma da terminale che chiede degli input, come "inserisci e-mail, nome, cognome" o cose simili..
ecco.. devo fare proprio questo.. oltre ad avviare il programma X, prevedere dentro la riga di comando stessa anche i parametri successivi
come si fa?
-
gikbuntu
- Scoppiettante Seguace

- Messaggi: 838
- Iscrizione: venerdì 28 gennaio 2011, 16:30
- Località: Bolzano/Bozen (BZ)
Re: concatenazione "atipica" di comandi in shell
Non ho capito bene: stai scrivendo un programma?
Se sì (oltre a segnalare ai mod che spostino in programmazione) io farei così:
creo uno script bash.
Poi, senza fare impazzire chi dovrebbe usare quel programma da terminale, farei una procedura del tipo:
poi ovviamente con $nome $email ed $pop ci puoi fare quello che vuoi.
Non concateni le stringhe, ma fai un programma più "user friendly"
Se sì (oltre a segnalare ai mod che spostino in programmazione) io farei così:
creo uno script bash.
Poi, senza fare impazzire chi dovrebbe usare quel programma da terminale, farei una procedura del tipo:
Codice: Seleziona tutto
#!/bin/bash
echo "inserisci un nome"
read $nome
echo "inserisci e-mail"
read $email
echo "inserisci server pop"
read $pop
Non concateni le stringhe, ma fai un programma più "user friendly"
-
novainvicta
- Scoppiettante Seguace

- Messaggi: 811
- Iscrizione: sabato 6 ottobre 2007, 11:32
- Contatti:
Re: concatenazione "atipica" di comandi in shell
grazie per la risposta
quello che devo realizzare è l'esatto opposto,
il programma è già scritto.. (non da me).. è cryptsetup,
il quale in alcune operazioni richiede degli input da tastiera che a quanto so non sono passabili per argomento
in poche parole quello che mi serve è che da una riga di comando shell,
oltre ad avviare cryptsetup deve anche "inserire" in sequenza quando il programma li chiede dei parametri (come nome, cognome, etc..)
p.s.
sebbene questa esigenza nasce dalla scrittura di un programma, la domanda è generica ed applicabile a qualsiasi script shell, per questo ho pensato di metterla in questa sezione del forum
quello che devo realizzare è l'esatto opposto,
il programma è già scritto.. (non da me).. è cryptsetup,
il quale in alcune operazioni richiede degli input da tastiera che a quanto so non sono passabili per argomento
in poche parole quello che mi serve è che da una riga di comando shell,
oltre ad avviare cryptsetup deve anche "inserire" in sequenza quando il programma li chiede dei parametri (come nome, cognome, etc..)
p.s.
sebbene questa esigenza nasce dalla scrittura di un programma, la domanda è generica ed applicabile a qualsiasi script shell, per questo ho pensato di metterla in questa sezione del forum
-
gikbuntu
- Scoppiettante Seguace

- Messaggi: 838
- Iscrizione: venerdì 28 gennaio 2011, 16:30
- Località: Bolzano/Bozen (BZ)
Re: concatenazione "atipica" di comandi in shell
Ok capito.
puoi sempre risolvere con bash.
Devi controllare però l'esatto ordine di inserimento.
puoi sempre risolvere con bash.
Codice: Seleziona tutto
#!/bin/bash
echo "inserisci il tuo nome"
read nome
echo "inserisci il cognome"
read cognome
read "inserisci l'indirizzo e-mail"
read email
cryptsetup $nome $cognome $email
-
novainvicta
- Scoppiettante Seguace

- Messaggi: 811
- Iscrizione: sabato 6 ottobre 2007, 11:32
- Contatti:
Re: concatenazione "atipica" di comandi in shell
molto gentile! ..proprio quello che cercavo, provo e vedo che succede
- GREY_FOX
- Scoppiettante Seguace

- Messaggi: 339
- Iscrizione: mercoledì 4 febbraio 2009, 0:24
- Località: Centro Italia
- Contatti:
Re: concatenazione "atipica" di comandi in shell
non penso proprio che funzioni in questo modo! a quanto pare li vuole a mano a mano i dati non direttamente come parametri.
Io proverei sempre con uno script in bash in qui richiami l'eseguibile e dopo ricordando la sequenza dei dati da inserire in automatico ne fai l'echo. Vedi se ti da problemi per l'accapo...
Io proverei sempre con uno script in bash in qui richiami l'eseguibile e dopo ricordando la sequenza dei dati da inserire in automatico ne fai l'echo. Vedi se ti da problemi per l'accapo...
Maledetto il paese che ha bisogno di eroi...
-
novainvicta
- Scoppiettante Seguace

- Messaggi: 811
- Iscrizione: sabato 6 ottobre 2007, 11:32
- Contatti:
Re: concatenazione "atipica" di comandi in shell
si infatti, ma non ho capito come dovrei comporre lo script?
qualche cosa come:
programma X
echo comando1
echo comando2
?
qualche cosa come:
programma X
echo comando1
echo comando2
?
GREY_FOX ha scritto: non penso proprio che funzioni in questo modo! a quanto pare li vuole a mano a mano i dati non direttamente come parametri.
Io proverei sempre con uno script in bash in qui richiami l'eseguibile e dopo ricordando la sequenza dei dati da inserire in automatico ne fai l'echo. Vedi se ti da problemi per l'accapo...
-
gikbuntu
- Scoppiettante Seguace

- Messaggi: 838
- Iscrizione: venerdì 28 gennaio 2011, 16:30
- Località: Bolzano/Bozen (BZ)
Re: concatenazione "atipica" di comandi in shell
Da me ha sempre funzionato...GREY_FOX ha scritto: non penso proprio che funzioni in questo modo! a quanto pare li vuole a mano a mano i dati non direttamente come parametri.
Io proverei sempre con uno script in bash in qui richiami l'eseguibile e dopo ricordando la sequenza dei dati da inserire in automatico ne fai l'echo. Vedi se ti da problemi per l'accapo...
Allora:si infatti, ma non ho capito come dovrei comporre lo script?
qualche cosa come:
programma X
echo comando1
echo comando2
?
echo => Stampa a video la scritta che gli dai dopo "..........", oppure i valori che vuoi ($nome, ecc. ecc)
read => "legge" ciò che digita l'utente, per poi salvarlo nella stringa, il cui nome specifichi dopo read (ad es. read nomefile)
$nomefile => La stringa che hai preso prima con read.
Quindi, mettendo che la procedura di cryptsetup sia (in rosso quello che scrivi tu):
Inserisci il nome:
mario
Inserisci il cognome
rossi
inserisci l'email
mariorossi@ubuntu-it.org
Lo script che eseguirai tu sarà:
Codice: Seleziona tutto
#!/bin/bash
echo "inserisci il tuo nome"
read nome
echo "inserisci il cognome"
read cognome
read "inserisci l'indirizzo e-mail"
read email
cryptsetup $nome $cognome $emailRe: concatenazione "atipica" di comandi in shell
Il simbolo | si chiama pipe e serve per mandare l'output del comando precedente come input del comando successivo; per separare dei comandi slegati in modo che possano essere scritti tutti su un'unica riga bisogna usare il punto e virgola (se ne parla sempre nella stessa pagina linkata prima, più in alto rispetto alla pipe)novainvicta ha scritto: ho già visto che è possibile eseguire più comandi shell su una sola riga aggiungendo separandogli con il carattere |,
Il mio blog su Ubuntu | Script per vedere canali RAI in diretta senza browser (discussione)
Quando devi inserire nei messaggi del codice usa il tag code, è il pulsante # sopra le emoticon: [code]inserisci il testo qui[/code]
Quando devi inserire nei messaggi del codice usa il tag code, è il pulsante # sopra le emoticon: [code]inserisci il testo qui[/code]
- GREY_FOX
- Scoppiettante Seguace

- Messaggi: 339
- Iscrizione: mercoledì 4 febbraio 2009, 0:24
- Località: Centro Italia
- Contatti:
Re: concatenazione "atipica" di comandi in shell
Se il programma che deve usare chiede solo parametri da linea di comando ok ma se li chiede in esecuzione cosi non funziona.gikbuntu ha scritto:Da me ha sempre funzionato...GREY_FOX ha scritto: non penso proprio che funzioni in questo modo! a quanto pare li vuole a mano a mano i dati non direttamente come parametri.
Io proverei sempre con uno script in bash in qui richiami l'eseguibile e dopo ricordando la sequenza dei dati da inserire in automatico ne fai l'echo. Vedi se ti da problemi per l'accapo...Allora:si infatti, ma non ho capito come dovrei comporre lo script?
qualche cosa come:
programma X
echo comando1
echo comando2
?
echo => Stampa a video la scritta che gli dai dopo "..........", oppure i valori che vuoi ($nome, ecc. ecc)
read => "legge" ciò che digita l'utente, per poi salvarlo nella stringa, il cui nome specifichi dopo read (ad es. read nomefile)
$nomefile => La stringa che hai preso prima con read.
Quindi, mettendo che la procedura di cryptsetup sia (in rosso quello che scrivi tu):
Inserisci il nome:
mario
Inserisci il cognome
rossi
inserisci l'email
mariorossi@ubuntu-it.org
Lo script che eseguirai tu sarà:
$nome, $cognome, $email sono esattamente nell'ordine che ti chiede cryptsetupCodice: Seleziona tutto
#!/bin/bash echo "inserisci il tuo nome" read nome echo "inserisci il cognome" read cognome read "inserisci l'indirizzo e-mail" read email cryptsetup $nome $cognome $email
Maledetto il paese che ha bisogno di eroi...
- smurf
- Rampante Reduce

- Messaggi: 5610
- Iscrizione: domenica 9 luglio 2006, 9:18
- Desktop: MATE con Compiz
- Distribuzione: Ubuntu 20.04.4
- Sesso: Maschile
- Località: Lima - Perú
Re: concatenazione "atipica" di comandi in shell
dico la mia, magari è un boiata comunque....
per prima cosa bisogna vedere se cryptsetup (che non conosco affatto) vuole i dati in input uno per uno, a sua richiesta, o se li accetta tutti insieme.
Se li accetta tutti insieme basta fare
se invece li vuole uno per uno si potrebbe provare
per prima cosa bisogna vedere se cryptsetup (che non conosco affatto) vuole i dati in input uno per uno, a sua richiesta, o se li accetta tutti insieme.
Se li accetta tutti insieme basta fare
Codice: Seleziona tutto
cryptsetup param1 param2 param3Codice: Seleziona tutto
echo param1 param2 param3 | cryptsetupLa terra non è una eredità che riceviamo dai nostri genitori, ma un prestito che ci fanno i nostri figli.
-
novainvicta
- Scoppiettante Seguace

- Messaggi: 811
- Iscrizione: sabato 6 ottobre 2007, 11:32
- Contatti:
Re: concatenazione "atipica" di comandi in shell
alla fine non sono mica riuscitoElrond ha scritto:Il simbolo | si chiama pipe e serve per mandare l'output del comando precedente come input del comando successivo; per separare dei comandi slegati in modo che possano essere scritti tutti su un'unica riga bisogna usare il punto e virgola (se ne parla sempre nella stessa pagina linkata prima, più in alto rispetto alla pipe)novainvicta ha scritto: ho già visto che è possibile eseguire più comandi shell su una sola riga aggiungendo separandogli con il carattere |,
il tuo commento era quello che sembrava dare più speranza, ma non ho trovato quel punto e virgola di cui parlavi..
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti