 | |
Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum |
[Misteri] -e si nasconde Clicca QUI per vedere il messaggio nel forum |
lallyblue |
Ciao!
questa di oggi proprio mi lascia senza parole... spero davvero che qcuno mi chiarisca il mistero... :pensa:
se assegno ad una variabile pippo il valore '-e' non c'è santo che tenga, ma echo non la visualizza... :shock:
perché?
mi spiego meglio:
code:
[root@lab0204 root]# pippo=-q
[root@lab0204 root]# echo $pippo
-q
[root@lab0204 root]# pippo=-e
[root@lab0204 root]# echo $pippo
[root@lab0204 root]#
ho provato anche con apici, virgolette, lo slash davanti al meno...
ma niente, non stampa nulla...
come mai? come posso risolvere?
grazie in anticipo! |
Alf |
Cambia shell
usi la bash ? |
lallyblue |
altra cosa...
io ho bisogno di controllare se un'opzione, passata come argomento di uno script, fa parte di un certo range di opzioni possibili.
X chiarire meglio, l'opzione può essere una tra le seguenti:
-e
-q
-ue
-uq
mi è venuto spontaneo pensare alle regexp e da quanto ho capito la sintassi dovrebbe essere qcosa del genere
/-u?[eq] /
eppure non c'è modo di passarlo come argomento di un grep
anche qui, ho provato con egrep, con grep -P, grep -e e tante altre...ma non c'è verso...
l'unica che funziona ma non come mi serve è
-u*[eq]
che però accetta anche -uuuue o -uuq
se non metto la stellina non accetta i semplici -e e -q
come diavolo faccio?!?!
tnx!! |
lallyblue |
sì sto usando la bash
ma non capisco dove sbaglio... :roll: |
Alf |
Originally posted by lallyblue
sì sto usando la bash
ma non capisco dove sbaglio... :roll:
Non credo sia un errore ...
Forse nella bash -e e' qualcosa di particolare .. pero non so ...
Per l'altra domanda ...
Non puoi usare case ? |
jdhoring |
Hai provato
pippo=\"-e\"
echo $pippo
? |
Alf |
Originally posted by jdhoring
Hai provato
pippo=\"-e\"
echo $pippo
?
ma cosi' ritornera' \"-e\" non -e |
lallyblue |
@alf boh, mi sembrava + sensato usare le regexp visto che (in teoria) era molto + banale... se solo non facesse le bizze...
@jd: mi stampa "-e" (anche con gli apici) che purtroppo non è cmq quello che mi serve :\
ah non va nemmeno se faccio semplicemente "echo -e" :( |
Alf |
Originally posted by lallyblue
@alf boh, mi sembrava + sensato usare le regexp visto che (in teoria) era molto + banale... se solo non facesse le bizze...
@jd: mi stampa "-e" (anche con gli apici) che purtroppo non è cmq quello che mi serve :\
ah non va nemmeno se faccio semplicemente "echo -e" :(
Ehmm lally credo sia un opzione del echo .. ma non dirti quale .. :) |
Alf |
Originally posted by Alf
Ehmm lally credo sia un opzione del echo .. ma non dirti quale .. :)
Ah ecco .. sul man in linea non lo dava.
Echo the STRING(s) to standard output.
-n do not output the trailing newline
-e enable interpretation of the backslash-escaped characters listed
below
-E disable interpretation of those sequences in STRINGs
Percio di -e -E -n non puoi fare l'echo |
jdhoring |
ma no... echo non ci deve nemmeno arrivare a valutare il -e
provato con
echo "-e"
echo \-e
? |
ak47 |
dunque, il motivo per cui non visulizza il -e non è perche non la memorizza nella variabile $a (ad esempio), ma perche applica il flag -e al comando echo... quindi se quel -e ($a) ti serve in uno script di shell puoi usarlo tranquillamente.....
la RE che soddisfa la tua richiesta è [-e|-q|-ue|-uq]
Saluti |
jdhoring |
Su Solaris 9, Korn shell
$ pippo="-e"
$ echo $pippo
-e |
Alf |
Originally posted by jdhoring
ma no... echo non ci deve nemmeno arrivare a valutare il -e
provato con
echo "-e"
echo \-e
?
Con la bash ??
Il problema lo da solo con la bash JD! |
Alf |
Originally posted by ak47
dunque, il motivo per cui non visulizza il -e non è perche non la memorizza nella variabile $a (ad esempio), ma perche applica il flag -e al comando echo... quindi se quel -e ($a) ti serve in uno script di shell puoi usarlo tranquillamente.....
la RE che soddisfa la tua richiesta è [-e|-q|-ue|-uq]
Saluti
Esatto come dicevo nello stralcio dell'help :)
Boh io avrei fatto cosi'
case "$1" in
"-e"|"-q"|"-u"|"-uq")
command
command
;;
esac
:) |
Alf |
Ah ultima cosa lally se il problema e' proprio "stampare SOLO -e " ho una soluzione anche se non e' il massimo :) |
lallyblue |
tipo?
io semplicemente facevo un
if echo $variabile | grep <regexp>
then
command
else
command
fi
boh mi sembrava la soluzione +semplice... :\
si può adattare? |
Alf |
Originally posted by lallyblue
tipo?
io semplicemente facevo un
if echo $variabile | grep <regexp>
then
command
else
command
fi
boh mi sembrava la soluzione +semplice... :\
si può adattare?
con il case:
case "$variabile" in
"-e"|"-q"|"-u"|"-uq")
command1
command2
;;
*)
command3
;;
esac
Se il valore $variabile si trova fra -e -q -u -uq esegue i comandi command1 command2 in tutti gli altri casi (*) esegue command 3
per STAMPARE -e fai cosi' ...
echo \"-e\" | cut -c2,3
Non e' bellissimo ... ma funziona :) |
DeepBlue |
Originally posted by ak47
la RE che soddisfa la tua richiesta è [-e|-q|-ue|-uq]
in bash con *grep mi sa che così non funziona.
Meglio che passi tutto a egrep così:
code: egrep "(^-)(e|q|ue|uq)"
Per il problema del -e..boh?
edit: anche io avevo pensato ad una soluzione simile a quella di alf (per l'assegnamento di -e) e mi sa che è l'unica strada, a meno di sostituire -e con qualcosaltro :D:D:D |
lallyblue |
l'opzione purtroppo non posso cambiarla, è quella che devo passare ad un programma x avere un certo risultato.
a questo punto userò l'egrep che mi hai suggerito, solo mi suonava strano che un comando come echo avesse tali limitazioni...
non c'è un comando alternativo all'echo x mostrare il contenuto delle variabili, vero? |
Alf |
Originally posted by DeepBlue
in bash con *grep mi sa che così non funziona.
Meglio che passi tutto a egrep così:
code: egrep "(^-)(e|q|ue|uq)"
Per il problema del -e..boh?
edit: anche io avevo pensato ad una soluzione simile a quella di alf (per l'assegnamento di -e) e mi sa che è l'unica strada, a meno di sostituire -e con qualcosaltro :D:D:D
ma scusa ... fare un if in pipe a un egrep e' simulare un case ... O_o;; perche' simularlo quando c'e' ?! :) |
lallyblue |
beh perché di solito il case lo applico quando ho tante opzioni e diventerebbe difficile usare tanti if/then/else in cascata. visto che qui o l'opzione è tra quelle 4 (e allora esegue il comando) oppure è qualsiasi altra cosa (e allora stampa un mex d'errore) mi sembrava + logico usare un if/then/else... ma non sono una buona programmatrice quindi è facile che mi sbagli... ;) |
DeepBlue |
Originally posted by lallyblue
non c'è un comando alternativo all'echo x mostrare il contenuto delle variabili, vero?
ho paura di no :/
Originally posted by Alf
ma scusa ... fare un if in pipe a un egrep e' simulare un case ... O_o;; perche' simularlo quando c'e' ?!
E che ne so io? :D
Lally era partita dicendo che stava usando grep ed egrep, io non sapendo su cosa stesse lavorando, mi sono adeguato :D |
Alf |
Originally posted by lallyblue
beh perché di solito il case lo applico quando ho tante opzioni e diventerebbe difficile usare tanti if/then/else in cascata. visto che qui o l'opzione è tra quelle 4 (e allora esegue il comando) oppure è qualsiasi altra cosa (e allora stampa un mex d'errore) mi sembrava + logico usare un if/then/else... ma non sono una buona programmatrice quindi è facile che mi sbagli... ;)
Beh sono equivalenti alla fine.
E cmq questo e' il caso in cui hai piu' scelte .. il fatto che 4 scelte facciano fare la stessa azione e' irrilevante :)
Cmq dentro l'if devi richiamare il grep :)
Il case lo fa da solo il parsing
Cmq alla fine sta a te decidere ;)
Ci sono altri comandi al posto dell'echo ma danno tutti lo stesso problema
Printf per esempio :) |
lallyblue |
fico... :roll:
grazie mille cmq! |
Alf |
Originally posted by lallyblue
fico... :roll:
grazie mille cmq!
Anzi no ..
Ti ho trovato la soluzione
code:
pippo=-e
printf "%s\n" $pippo
Cosi' stampa tutto cio' che vuoi :D |
Viry |
Senza diventare matti, c'e' getopts per fare cio':
Nell'esempio lo script accetta le opzioni -h -a -b -c
code:
while getopts "habc" opt; do
case $opt in
h ) visualizzo_help ;;
a) eseguo_una_cosa;;
b ) faccio_altra_cosa;;
....
esac
done
Molto piu' comodo, no?
Qui la man page:
http://www.ss64.com/bash/getopts.html
e un po' di esempietti:
http://www.linuxlaboratory.org/27.php |
Viry |
In ogni caso, per controllare su una stringa e' uguale a un'altra, si usa if test:
in questo caso voglio che lo script dice gatto se lanciato con -e
code:
if test $1 = "-e"; then echo "gatto"; fi
viry@nocciolina ~ $ sh prova.sh -e
gatto
viry@nocciolina ~ $ sh prova.sh -i
viry@nocciolina ~ $
|
lallyblue |
Originally posted by Viry
Senza diventare matti, c'e' getopts per fare cio':
Nell'esempio lo script accetta le opzioni -h -a -b -c
code:
while getopts "habc" opt; do
case $opt in
h ) visualizzo_help ;;
a) eseguo_una_cosa;;
b ) faccio_altra_cosa;;
....
esac
done
Molto piu' comodo, no?
Qui la man page:
http://www.ss64.com/bash/getopts.html
e un po' di esempietti:
http://www.linuxlaboratory.org/27.php
x curiosità: ma questo funziona anche quando ho opzioni tipo -ue, -uq ovvero con + lettere assieme? (sì so che -ue è come dire -u -e ma se l'utente inserisce -ue non va + bene x lo script, giusto? )
cmq lo tengo presente x la prossima occasione... x questa volta ho risolto con il case, effettivamente è quello che rende meglio :)
ora sto litigando un po' con il grep...
dal man mi sembra di aver capito che basta usare anche qui le regexp...
diciamo che ho un file "file.txt" che contiene una riga con "ciao pippo blah blah" e un'altra riga con "www.pippo.pip"
con il comando
cat file.txt | egrep \<pippo\>
mi aspetto di trovare solo la riga relativa a "ciao pippo blah blah" ovvero solo quella contornata da spazi, giusto?
ho provato anche \bpippo\b..
ma in entrambi i casi mi stampa entrambe le righe... ma se voglio la stringa esatta, contornata da spazi, che devo fa?!? :pensa:
tnxtnx! |
Viry |
Usa le virgolette: grep " pippo " |
lallyblue |
dhò...
ero convinta di averlo già provato invano... e invece funzia! ;)
ok... dai dai, altro quesito :D
ho un output di un comando che suona + o - così:
code: FIELDNAME1 FIELDNAME2 FIELDNAME3 ... FIELDNAMEn
value1 value2 value3 ... valuen
... ... ... ... ...
OTHERFN1 OTHERFN2 ...
value value value
.... .... ...
e mi servono solo le righe della prima tabella, esclusi i titoli e la riga bianca tra le 2 tabelle...
finora ho usato l'awk:
comando | awk '/FIELDNAME1/, /$^/ {print $2}' | grep -v FIELDNAME1
il che però mi lascia ancora la riga vuota :roll:
qualche soluzione + elegante/efficente? |
DeepBlue |
semplicemente
comando | cut -d " " -f 1
Fra le virgolette dopo il -d metti \t se i campi sono separati da tabulatori ;) |
Alf |
Il comando che comando e' ? |
lallyblue |
ehm... io vorrei avere solo i valori della prima tabella... niente titoli né valori della seconda tabella...
ho provato il cut ma non va bene... mi stampa tutti i titoli e i valori della seconda tabella... |
lallyblue |
@alf, non è un comando di bash, è un comando di un sw che utilizzo...
tra l'altro, non ho specificato, ma i valori all'interno della tabella possono cambiare, mentre i titoli son sempre quelli.
inoltre anche il numero di righe della tabella è variabile...
l'awk mi funziona, solo che mi include i 2 estremi (la prima e l'ultima riga indicate nello script) mentre io le voglio escludere... |
Alf |
Si' volevo sapere quello.
E' un comando che dai e lui ti da in output il formato che hai scritto ? |
DeepBlue |
Originally posted by lallyblue
ehm... io vorrei avere solo i valori della prima tabella... niente titoli né valori della seconda tabella...
ho provato il cut ma non va bene... mi stampa tutti i titoli e i valori della seconda tabella...
Scusa, hai ragione, non avevo letto bene e avevo capito che ti serviva solo la prima colonna (così imparo a postare dal lavoro :D).
Ci penso e ti faccio sapere. |
lallyblue |
Originally posted by Alf
Si' volevo sapere quello.
E' un comando che dai e lui ti da in output il formato che hai scritto ?
esatto |
DeepBlue |
Allora, con questo:
code: comando |tr -d "\n"| sed s/OTHERFN1/\\nOTHERFN1/ | grep FIELDNAME1
dovresto ottenere questo:
FIELDNAME1 FIELDNAME2 FIELDNAME3 value1 value2 value3
Da li, dovresti ottnere più o meno facilmente quello che ti serve |
lallyblue |
uhm...
direi di no... mi servono incolonnati come sono... |
lallyblue |
molto semplicemente, con il comando che ho incollato sopra ottengo una cosa di questo genere:
code:
-----
FIELDNAMEx FIELDNAMEy
valuea valuepippo
valueb valuepluto
valuec valueciccio
... ...
valuez valuepaperone
----
(trattini esclusi)
quello che vorrei ottenere è la stessa cosa ma senza intestazione e senza la riga vuota in fondo...
purtroppo con awk non riesco a combinare la selezione del blocco tra FIELDNAME1 e la riga vuota con il fatto che non voglio le 2 righe in questione...
in pratica fa una selezione estremi inclusi, mentre a me serve estremi esclusi...
grazie cmq :) |
DeepBlue |
Originally posted by lallyblue
uhm...
direi di no... mi servono incolonnati come sono...
:D che pretese! :D
ok, fai così allora:
code: comando |tr "\n" "@@@" | sed s/OTHERFN1/\\n\\nOTHERFN1/ | grep FIELDNAME1 | tr "@@@" "\n"|grep -v FIELDNAME1
Non è elegante, ma funziona :D
|
lallyblue |
bene, quesito del giorno...
continuo qui xché riguarda sempre lo stesso script (chiamiamolo script.sh)...
(poi semmai splitto...)
ho la necessità di lanciare i comandi dello script da remoto, e pensavo di usare ssh
quindi ho creato un nuovo script, remotescript.sh ed ho 'inglobato' il codice dello script in questo:
code:
ssh nodename "
...
<codice script>
...
"
il problema è che quando lancio remotescript.sh, ssh mi va a leggere le variabili d'ambiente della macchina da cui lancio questo script e non quelle della macchina remota... questo mi causa non pochi problemi visto che la var PATH è diversa...
queste prove le prove che ho fatto:
- creato un file prova.sh e ci ho scritto dentro ssh nodename "echo $PATH"
- creato un file prova.sh e ci ho scritto dentro ssh nodename echo $PATH
--> queste 2 mi hanno stampato il PATH della macchina locale (quella d'ambiente)
- creato un file prova.sh e ci ho scritto dentro ssh nodename 'echo $PATH'
--> questa mi ha stampato il PATH dello user della macchina locale
l'unico modo x ora che ho trovato x avere la path della macchina remota è collegarmi e solo dopo, quando mi viene proposto il prompt, faccio echo $PATH.
però questo non posso farlo nello script
idee?
grazie mille!! :) |
DeepBlue |
Originally posted by lallyblue
l'unico modo x ora che ho trovato x avere la path della macchina remota è collegarmi e solo dopo, quando mi viene proposto il prompt, faccio echo $PATH.
AFAIK, è l'unico modo possibile, ma prova a chiedere in giro.
PS: la riga che ho postato ieri ha poi funzionato? |
giulio |
Originally posted by lallyblue
l'unico modo x ora che ho trovato x avere la path della macchina remota è collegarmi e solo dopo, quando mi viene proposto il prompt, faccio echo $PATH.
però questo non posso farlo nello script
idee?
ssh pippo.somewhere.net "echo \$PATH"
altrimenti la variabile $PATH viene valutata (e quindi il suo contenuto viene sostituito nella riga) prima di essere passata al
comando ssh. |
lallyblue |
funziona!!! ma grande Giulio!! :lode: |
lallyblue |
scusate se vi assillo, ma qui è tutta una catena di casini...risolvo uno e ne salta fuori un'altro... :|
a quanto pare devo usare sì il backslash, ma non basta, devo anche fare "su -" se no mi prende il $PATH sì ma non quello giusto (prende quello dello user... (?) )
quindi ora avrei una situazione di questo genere:
ssh nodename "su - -c comando1
comando 2
comando 3
...
comando n"
peccato che in questo modo prende le var. d'ambiente giuste solo il comando sulla prima riga...
come faccio a renderlo x tutti i comandi?
ho provato a mandare a capo dopo su -
ma mi resta lì senza dare segni di vita...
:help: |
giulio |
Originally posted by lallyblue
scusate se vi assillo, ma qui è tutta una catena di casini...risolvo uno e ne salta fuori un'altro... :|
a quanto pare devo usare sì il backslash, ma non basta, devo anche fare "su -" se no mi prende il $PATH sì ma non quello giusto (prende quello dello user... (?) )
quindi ora avrei una situazione di questo genere:
ssh nodename "su - -c comando1
comando 2
comando 3
...
comando n"
ssh root@pippo.somewhere.net "echo \$PATH; comando1; comando2 ; comando3"
i comandi (nel caso fossero script) devono essere sulla macchina remota. |
Alf |
Posso darti un consiglio ?
host remoto= HostA
host da cui operare = HostB
script sull' hostremoto : /usr/script/script.sh
HostB> ssh HostA /usr/scrit/script.sh
Invece di passargli il codice dello script passi il path dello script da lanciare. ;) |
Alf |
Originally posted by giulio
ssh root@pippo.somewhere.net "echo \$PATH; comando1; comando2 ; comando3"
i comandi (nel caso fossero script) devono essere sulla macchina
remota.
Esatto mi sa che lui vuole passare il codice dello script con l'ssh invece di eseguire lo script direttamente :)
Cosi' mi pare di aver capito :) |
giulio |
Originally posted by Alf
Esatto mi sa che lui vuole passare il codice dello script con l'ssh invece di eseguire lo script direttamente :)
Cosi' mi pare di aver capito :)
Vogliamo esagerare?
Se lo script e' sulla macchina locale e si chiama script.sh puoi fare:
ssh root@pippo.somewhere.net "$(cat script.sh)" |
Alf |
Originally posted by giulio
Vogliamo esagerare?
Se lo script e' sulla macchina locale e si chiama script.sh puoi fare:
ssh root@pippo.somewhere.net "$(cat script.sh)"
Oh certo :)
Pero' se lo deve usare sull'altra macchina ha piu' senso che sia li' no ? :)
Comunque credo che siano tutte cose utili che a lallyblue interessano :D anche se sono esagerazioni :)
No ? :) |
lallyblue |
:oops:
ok, ora mi mettete nell'imbarazzo della scelta... :D
qual è la soluzione migliore? la + sicura, efficace, efficiente, prestante... boh...
in base a cosa devo scegliere una soluzione +ttosto che un'altra?
grazie mille raga!! :) |
Alf |
Boh secondo me ha senso che se lo script deve girare solo sul server remoto e' il caso che si trovi li' sopra.
L'altro serve semplicemente per eseguirlo via ssh.
Cio' vuol dire che puoi collegarti da un server C e fare la stessa cosa
scrivendo solo
>ssh hostnameremoto /usr/script/script.sh
Senza doverti ricordare tutto lo script o scrivertelo ovunque :)
:) |
lallyblue |
Originally posted by giulio
ssh root@pippo.somewhere.net "echo \$PATH; comando1; comando2 ; comando3"
i comandi (nel caso fossero script) devono essere sulla macchina remota.
uhm... ho provato ma non va...
devo per forza aggiungere "su - -c "
e a quel punto già alla seconda riga non usa + le variabili d'amb. corrette...
la sintassi che uso è questa (all'interno di un remotescript.sh)
#!/bin/bash
ssh nodename "su - -c comando 1;
comando 2;
comando 3;
...
comando n"
dove sbaglio? |
giulio |
Originally posted by lallyblue
uhm... ho provato ma non va...
devo per forza aggiungere "su - -c "
e a quel punto già alla seconda riga non usa + le variabili d'amb. corrette...
la sintassi che uso è questa (all'interno di un remotescript.sh)
#!/bin/bash
ssh nodename "su - -c comando 1;
comando 2;
comando 3;
...
comando n"
dove sbaglio?
Sbagli nel volerti autenticare due volte. Se fai ssh root@nodename, non c'e' piu' bisogno di "su".
Ricapitolo:
se lo script e' locale:
ssh root@nodename "$(cat script.sh)"
se lo script e' remoto:
ssh root@nodename "script.sh"
e togli la riga con "su" dallo script, ovunque esso si trovi, lasciando solo l'elenco dei comandi separati da \n (invio). |
Alf |
Ehmmm ogni riga divisa da ; la esegue come comando a parte
Dovresti mettere davanti a tutti su - -c ...
Un po' complicata come cosa .. :) |
lallyblue |
@giulio: ho provato come dici (script locale da eseguire su macchina remota) ma non trova il path della macchina remota.
sulla macchina remota c'è installato un sw del quale nello script eseguo dei comandi.
naturalmente sulla macchina locale questo programma non c'è.
come conseguenza non riesce eseguire i comandi perché non son nel path...
(scusa la contortaggine... ;) ) |
giulio |
Originally posted by Alf
Ehmmm ogni riga divisa da ; la esegue come comando a parte
Dovresti mettere davanti a tutti su - -c ...
Un po' complicata come cosa .. :)
nope:
[root@ghost root]# su - -c "ls -ld /tmp; ls -ld /tmp"
drwxrwxrwt 12 root root 69632 Aug 31 04:02 /tmp
drwxrwxrwt 12 root root 69632 Aug 31 04:02 /tmp
[root@ghost root]# uname -a
Linux ghost 2.6.12.5 #1 SMP Wed Aug 24 16:28:49 CEST 2005 i686 i686 i386 GNU/Linux |
Alf |
A maggior ragione metti lo script direttamente sulla macchina remota.
E poi su quella locale fai ssh hostremoto "pathscript/script" |
giulio |
Originally posted by lallyblue
@giulio: ho provato come dici (script locale da eseguire su macchina remota) ma non trova il path della macchina remota.
sulla macchina remota c'è installato un sw del quale nello script eseguo dei comandi.
naturalmente sulla macchina locale questo programma non c'è.
come conseguenza non riesce eseguire i comandi perché non son nel path...
(scusa la contortaggine... ;) )
Forse non ho capito molto bene il problema.
Diciamo che ho uno script script.sh sulla macchina locale fatto cosi':
code:
#!/bin/sh
comando1
comando2
comando3
comando4
e faccio:
ssh root@macchinaremota "$cat(script.sh)"
la cosa funziona.
NON serve usare su!
Se non trova i comandi perche' non sono nel path basta modificare lo script sulla macchina locale in questo modo:
code:
#!/bin/sh
export PATH=/una/dir/alquanto/strana:$PATH
comando1
comando2
comando3
comando4
|
lallyblue |
@alf: sì in quel modo funziona, ma volevo tentare di farlo anche da remoto...
finora mi collegavo in ssh e poi lo eseguivo sulla macchina remota. ma pensavo fosse possibile lanciarlo direttamente da remoto via ssh... |
giulio |
Originally posted by lallyblue
@alf: sì in quel modo funziona, ma volevo tentare di farlo anche da remoto...
finora mi collegavo in ssh e poi lo eseguivo sulla macchina remota. ma pensavo fosse possibile lanciarlo direttamente da remoto via ssh...
Forse non ti seguo....
Se fai come ho detto nell'ultimo post lo lanci direttamente da
remoto via ssh.
Per avere una terminologia comune la macchina locale e' quella su cui tu hai una shell aperta, mentre la macchina remota e' quella dove c'e' il software strano. |
Alf |
Originally posted by lallyblue
@alf: sì in quel modo funziona, ma volevo tentare di farlo anche da remoto...
finora mi collegavo in ssh e poi lo eseguivo sulla macchina remota. ma pensavo fosse possibile lanciarlo direttamente da remoto via ssh...
Scusa la differenza ?!
A parte quella concettuale .... |
DeepBlue |
Off-Topic: bello 'sto thread! |
lallyblue |
concordo sulla terminologia...
la script è salvata sia in locale che in remoto.
se faccio
ssh nodename [invio]
e poi lancio la script, questa funziona regolarmente
ma se voglio dare un comando unico su una sola riga, facendo come dici tu[ssh root@nodename "$(cat script.sh)"] , mi dà quel problema...
cmq boh, ora devo scappare se no perdo il treno... riprendo il tutto lunedì :)
magari nel frattempo provo a cercare qualche buon tutorial a riguardo...anzi, se ne avete qualcuno da consigliarmi, è il benvenuto!
Grazie mille a tutti x l'aiuto! :)
:ciaoo: |
Alf |
Originally posted by lallyblue
concordo sulla terminologia...
la script è salvata sia in locale che in remoto.
se faccio
ssh nodename [invio]
e poi lancio la script, questa funziona regolarmente
ma se voglio dare un comando unico su una sola riga, facendo come dici tu[ssh root@nodename "$(cat script.sh)"] , mi dà quel problema...
cmq boh, ora devo scappare se no perdo il treno... riprendo il tutto lunedì :)
magari nel frattempo provo a cercare qualche buon tutorial a riguardo...anzi, se ne avete qualcuno da consigliarmi, è il benvenuto!
Grazie mille a tutti x l'aiuto! :)
:ciaoo:
Non ho mai detto di fare
ssh nodename [invio]
e poi lancio la script,
Ho detto:
ssh nodename pathscript/script [invio]
In pratica il comando che dai e' "lancia lo script sulla macchina remota" invece che "codice dello script" |
|
|
|
|