Equivalente esplicito di `...`?

Ciao, scusate la domanda scema…
c’è un metodo esplicito equivalente al comando ...?
(serve quando invoco programmi shell da uno script ruby)

Io non sono riuscito a trovarlo… C’è Kernel.exec ma sostituisce tutto il
processo e non mi continua il mio script…


Paolo D.’
SeeSaw | Another point of view

[email protected]

On Oct 6, 2006, at 12:14 PM, Paolo Donà wrote:

Ciao, scusate la domanda scema…
c’è un metodo esplicito equivalente al comando ...?

in che senso “esplicito”?


Stefano C.
[email protected]

On 10/6/06, Paolo Donà [email protected] wrote:

Ciao, scusate la domanda scema…
c’è un metodo esplicito equivalente al comando ...?
(serve quando invoco programmi shell da uno script ruby)

Io non sono riuscito a trovarlo… C’è Kernel.exec ma sostituisce tutto il
processo e non mi continua il mio script…

IO.popen mi viene in mente subito, ma magari c’e` di meglio…


David N. Welton

Linux, Open Source Consulting

Paolo Donà ha scritto:

Ciao, scusate la domanda scema…
c’è un metodo esplicito equivalente al comando ...?
(serve quando invoco programmi shell da uno script ruby)

Io non sono riuscito a trovarlo… C’è Kernel.exec ma sostituisce tutto il
processo e non mi continua il mio script…

ciao paolo,

in effetti pare che l’operatore `` sia in realtà un metodo di Kernel:

mauro@terminus:~$ irb
irb(main):001:0> Kernel.methods
=> [“to_a”, “respond_to?”, “ancestors”, “select”, “local_variables”,
…, “`”, …
“readline”, “kind_of?”, “untrace_var”, “eval”, “require”]

ma non ho ben capito come invocarlo. in irb nessuna delle seguenti
sintassi funziona:

Kernel.("echo pippo") Kernel.\(“echo pippo”)
Kernel.“"("echo pippo") Kernel::(“echo pippo”)
Kernel::`(“echo pippo”)
Kernel::”`"(“echo pippo”)

qualche idea?


Aequam memento rebus in arduis servare mentem…

Mauro T. http://www.tortonesi.com

University of Ferrara - Dept. of Eng. http://www.ing.unife.it
GNU Wget - HTTP/FTP file retrieval tool
Wget - GNU Project - Free Software Foundation
Deep Space 6 - IPv6 for Linux http://www.deepspace6.net
Ferrara Linux User Group http://www.ferrara.linux.it

Mauro T. ha scritto:

in effetti pare che l’operatore `` sia in realtà un metodo di Kernel:
Kernel.("echo pippo") Kernel.\(“echo pippo”)
Kernel.“"("echo pippo") Kernel::(“echo pippo”)
Kernel::`(“echo pippo”)
Kernel::”`"(“echo pippo”)

qualche idea?

mi rispondo da solo:

irb(main):027:0> Kernel.method(:`).call(“echo pippo”)
=> “pippo\n”

grande il maurino!!! :wink:


Aequam memento rebus in arduis servare mentem…

Mauro T. http://www.tortonesi.com

University of Ferrara - Dept. of Eng. http://www.ing.unife.it
GNU Wget - HTTP/FTP file retrieval tool
Wget - GNU Project - Free Software Foundation
Deep Space 6 - IPv6 for Linux http://www.deepspace6.net
Ferrara Linux User Group http://www.ferrara.linux.it

irb(main):027:0> Kernel.method(:`).call(“echo pippo”)
=> “pippo\n”

Kernel.send(‘`’, “ls”)


David N. Welton

Linux, Open Source Consulting

On Oct 6, 2006, at 12:54 PM, Mauro T. wrote:

mi rispondo da solo:

irb(main):027:0> Kernel.method(:`).call(“echo pippo”)
=> “pippo\n”

grande il maurino!!! :wink:

Si’ ma vogliamo sapere perche’ lo vuoi invocare in un cotal modo
contorto :slight_smile:

On 10/6/06, Paolo Donà [email protected] wrote:

Ciao, scusate la domanda scema…
c’è un metodo esplicito equivalente al comando ...?
(serve quando invoco programmi shell da uno script ruby)

Io non sono riuscito a trovarlo… C’è Kernel.exec ma sostituisce tutto il
processo e non mi continua il mio script…

Per che cosa ti serve?

M

David W. ha scritto:

irb(main):027:0> Kernel.method(:`).call(“echo pippo”)
=> “pippo\n”

Kernel.send(‘`’, “ls”)

ciao david,

in effetti il tuo esempio è più pulito del mio. ad ogni modo non è
necessario fare un riferimento esplicito a “Kernel”:

irb(main):029:0> method(:).call("echo pippo") => "pippo\n" irb(main):030:0> send("", “echo pippo”)
=> “pippo\n”


Aequam memento rebus in arduis servare mentem…

Mauro T. http://www.tortonesi.com

University of Ferrara - Dept. of Eng. http://www.ing.unife.it
GNU Wget - HTTP/FTP file retrieval tool
Wget - GNU Project - Free Software Foundation
Deep Space 6 - IPv6 for Linux http://www.deepspace6.net
Ferrara Linux User Group http://www.ferrara.linux.it

Sei malato!!! :slight_smile: cmq si, le tastiere italiane sono un incubo per un
coder.
imposta la tastiera inglese, così puoi switchare tra inglese e italiana a
colpi di alt-shift sinistro.

On 10/6/06, Paolo Donà [email protected] wrote:

Adesso provo a vedere se riesco a fare l’aliasing di ` in qualcos’altro…

irb(main):027:0> Kernel.method(:`).call(“echo pippo”)

http://lists.ruby-it.org/mailman/listinfo/ml


Chiaroscuro

Liquid Development: http://liquiddevelopment.blogspot.com/

Ok, speravo ci fosse un nome di metodo esplicito perchè non ho uno
shortcut
da tastiera per fare quell’apicetto storto e non mi va di fare ctrl-c
ctrl-v
tutte le volte che lo voglio usare.

Un qualcosa tipo:
Kerner.ex(cmd) mi è più comodo di #{cmd}

Adesso provo a vedere se riesco a fare l’aliasing di ` in
qualcos’altro…
Paolo

On 10/6/06, Stefano C. [email protected] wrote:

grande il maurino!!! :wink:


Ml mailing list
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml


Paolo D.’
SeeSaw | Another point of view

[email protected]

boh… non sono riuscito a fare l’aliasing, cmq si può fare semplicemente
così:
module Kernel; def execute cmd; #{cmd}; end; end
execute “echo ciao” #=> ciao

In questo modo faccio il ctrl-c ctrl-v una volta sola, poi chiamo
‘execute’.
Per me che non sono un guru di scripting risulta pure + leggibile.

On 10/6/06, chiaro scuro [email protected] wrote:

da tastiera per fare quell’apicetto storto e non mi va di fare ctrl-c
On 10/6/06, Stefano C. [email protected] wrote:

grande il maurino!!! :wink:


Chiaroscuro

Liquid Development: http://liquiddevelopment.blogspot.com/


Ml mailing list
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml


Paolo D.’
SeeSaw | Another point of view

[email protected]

On Oct 6, 2006, at 1:21 PM, Paolo Donà wrote:

qualcos’altro…
%x"#{ cmd }"

Mi sa che fai prima cosi’ :slight_smile:
Comunque se non hai bisogno di catturare l’output puoi usare
Kernel::system…


Stefano C.
[email protected]

Perfetto! %x{…} è quello che volevo.
Sono ancora convinto che execute sia + leggibile ma la rottura di
riaprire
Kernel lo fa scendere in graduatoria…

Thanks a tutti!

On 10/6/06, Giovanni C. [email protected] wrote:


Ml mailing list
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml


Paolo D.’
SeeSaw | Another point of view

[email protected]

Con linux mi basta premere altgr+’ per ottenere ` quindi mi risulta
immediato e non devo nemmeno usare la tastiera inglese :wink:

Il 06/10/06, Paolo Donà[email protected] ha scritto:

Il giorno ven, 06/10/2006 alle 14.31 +0200, Paolo Donà ha scritto:

boh… non sono riuscito a fare l’aliasing, cmq si può fare semplicemente
così:

module Kernel; def execute cmd; #{cmd}; end; end
execute “echo ciao” #=> ciao

In questo modo faccio il ctrl-c ctrl-v una volta sola, poi chiamo ‘execute’.
Per me che non sono un guru di scripting risulta pure + leggibile.

C’è anche lo shortcut standard %x{} che è del tutto equivalente al
backquote:

irb(main):001:0> %x{dir} === dir
=> true

Giovanni

On Oct 6, 2006, at 5:02 PM, Giovanni I. wrote:

Il giorno 06/ott/06, alle ore 17:00, Federico G. ha scritto:

Option + \ sul Mac!

Io da sempre uso il layout americano anche sulle tastiere italiane…
per programmare
e’ molto piu’ comodo :slight_smile:

Il giorno 06/ott/06, alle ore 17:00, Federico G. ha scritto:

Option + \ sul Mac!

Io da sempre uso il layout americano anche sulle tastiere italiane…
per programmare
e’ molto piu’ comodo :slight_smile:

Concordo;-) Anche per questione di abitudine, non riesco ad usare
bene le tastiere italiane. Io ho trovato queste in giro a poco prezzo
se dovesse interessare a qualcun altro.

http://www.kraun.it/htm/spec.asp?IDL=1&IDP=2&IDC=2


David N. Welton

Linux, Open Source Consulting

Il 6-10-2006 chiaro scuro ha scritto:

Sei malato!!! :slight_smile: cmq si, le tastiere italiane sono un incubo per
un coder.
imposta la tastiera inglese, così puoi switchare tra inglese e
italiana a
colpi di alt-shift sinistro.

In assoluto si, ma anche gli OS hanno la loro bella colpa. Per me
l’apice storto è alt-. Ribadisco, avere tutti i caratteri ascii a
portata di mano è comodissimo.

Per anni sono andato a cercarmi le tastiere americane. Poi ho dovuto
cambiare portatile al volo e non ho potuto acquistarlo con la USA ( e
farla cambiare costa un botto essendo retroilluminata). Beh, da allora
per uniformità ho riconvertito su ITA tutto.

Grosso modo non è nemmeno eccessivamente scomodo: ribadisco, basta che
l’OS mappi bene i tasti (o che l’utente sappia rimapparli).


blog: http://www.akropolix.net/rik0/blogs | Enrico F.
site: http://www.akropolix.net/rik0/ | RiK0
forum: http://www.akropolix.net/forum/ | Linux Counter: #299198