Repository 32bit  Forum
Repository 64bit  Wiki

Problema assurdo con uno script.

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

Re: Problema assurdo con uno script.

Messaggioda absinthe » sab apr 26, 2008 12:07

ora=`/bin/date +%H:%M`

accento grave, oppure solo nella bash

ora=$(/bin/date +%H:%M)

Mario Vanoni

scusa Mario, confermi la cosa? io ricordo di aver usato più volte la sintassi VARIABILE=$(comando) anche in ash e di non aver trovato intoppi... questo è confermato anche qui, riporto un estratto:
Command Substitution

Ash accepts two syntaxes for command substitution:

`list`

and

$(list)

Either of these may be included in a word. During the
command substitution process, the command (syntactly a
list) will be executed and anything that the command
writes to the standard output will be captured by the
shell. The final newline (if any) of the output will be
deleted; the rest of the output will be substituted for
the command in the word.

questo significherebbe che neppure la ash è effettivamente un clone esatto della vecchia sh! io invece ero convinto che fosse così!
e comunque, clone esatto o meno: quale delle due espressioni e stringentemente POSIX? la prima oppure entrambe?

grazie,
M
Avatar utente
absinthe
Iper Master
Iper Master
 
Messaggi: 2354
Iscritto il: sab mag 14, 2005 23:00
Località: Prato
Nome Cognome: Matteo Nunziati
Slackware: 12.1 - defunct
Kernel: 2.6.32-5-amd64
Desktop: gnome
Distribuzione: debian squeeze

Re: Problema assurdo con uno script.

Messaggioda Mario Vanoni » sab apr 26, 2008 13:22

absinthe ha scritto:
ora=`/bin/date +%H:%M`

accento grave, oppure solo nella bash

ora=$(/bin/date +%H:%M)

Mario Vanoni

scusa Mario, confermi la cosa? io ricordo di aver usato più volte la sintassi VARIABILE=$(comando) anche in ash e di non aver trovato intoppi... questo è confermato anche qui, riporto un estratto:
Command Substitution

Ash accepts two syntaxes for command substitution:

`list`

and

$(list)

Either of these may be included in a word. During the
command substitution process, the command (syntactly a
list) will be executed and anything that the command
writes to the standard output will be captured by the
shell. The final newline (if any) of the output will be
deleted; the rest of the output will be substituted for
the command in the word.

questo significherebbe che neppure la ash è effettivamente un clone esatto della vecchia sh! io invece ero convinto che fosse così!
e comunque, clone esatto o meno: quale delle due espressioni e stringentemente POSIX? la prima oppure entrambe?

grazie,
M


Bourne Shell e shell della stessa generazione conoscevano unicamente:
arg1 = arg2
`cmd`
. filename

La prossima generazione in parte accetta o accetta pienamente
arg1 == arg2
$(cmd)
source filename

Per quanto sappia, una shell POSIX deve interpretare ambedue le notazioni.

Pero` una shell POSIX conosce cose non esistenti nelle vecchie, e.g.
[alnum] [alpha] [ascii] ecc.
quindi preferisco scrivere [A-Za-z0-9] per il primo, sono sicuro che funziona.

Mario Vanoni
Mario Vanoni
Iper Master
Iper Master
 
Messaggi: 3174
Iscritto il: lun set 03, 2007 20:20
Località: Cuasso al Monte (VA)
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey

Re: Problema assurdo con uno script.

Messaggioda conraid » sab apr 26, 2008 14:25

Se è come dite voi perché Pat scrive
Codice: Seleziona tutto
Honestly, I think /testing may be a better
  place for bash-3.2 for a while longer -- it's causing trouble with many old
  scripts.  So, we'll give it a while longer to stabilize and for scripts to
  catch up to any syntax changes which may have occurred.  The fix for 99.9%
  of these old scripts is to not use the deprecated `command` syntax and
  instead use the $(command) syntax.
Avatar utente
conraid
Staff
Staff
 
Messaggi: 11987
Iscritto il: mer lug 13, 2005 23:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

Re: Problema assurdo con uno script.

Messaggioda Mario Vanoni » sab apr 26, 2008 15:06

conraid ha scritto:Se è come dite voi perché Pat scrive
Codice: Seleziona tutto
Honestly, I think /testing may be a better
  place for bash-3.2 for a while longer -- it's causing trouble with many old
  scripts.  So, we'll give it a while longer to stabilize and for scripts to
  catch up to any syntax changes which may have occurred.  The fix for 99.9%
  of these old scripts is to not use the deprecated `command` syntax and
  instead use the $(command) syntax.


Quanti shell scripts esistono al mondo su quante macchine, vecchie e nuove?

Se `command` e` deprecato, quanti di questi scripts sono da riscrivere?

Quindi bash-3.2 porta tanto lavoro, quanti sistemi andranno in TILT?

Il forum si prepari ...

Mario Vanoni
Mario Vanoni
Iper Master
Iper Master
 
Messaggi: 3174
Iscritto il: lun set 03, 2007 20:20
Località: Cuasso al Monte (VA)
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey

Re: Problema assurdo con uno script.

Messaggioda conraid » sab apr 26, 2008 15:10

Mario Vanoni ha scritto:Se `command` e` deprecato, quanti di questi scripts sono da riscrivere?

Quindi bash-3.2 porta tanto lavoro, quanti sistemi andranno in TILT?


E' quel che pensavo io, e poi nella documentazione della bash 3.2 c'è ancora scritto che `command` va bene. Non so che pensare.

http://www.gnu.org/software/bash/manual ... bstitution
Avatar utente
conraid
Staff
Staff
 
Messaggi: 11987
Iscritto il: mer lug 13, 2005 23:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

Re: Problema assurdo con uno script.

Messaggioda Mario Vanoni » sab apr 26, 2008 15:35

conraid ha scritto:
Mario Vanoni ha scritto:Se `command` e` deprecato, quanti di questi scripts sono da riscrivere?

Quindi bash-3.2 porta tanto lavoro, quanti sistemi andranno in TILT?


E' quel che pensavo io, e poi nella documentazione della bash 3.2 c'è ancora scritto che `command` va bene. Non so che pensare.

http://www.gnu.org/software/bash/manual ... bstitution


Da subito usare $(command) e cambiare man mano gli script con `command`.

Vale solo su Linux recenti, mai toccare una vecchia macchina Sun-OS o Ultrix!
Quella in ditta, dual XEON-2800 2GB RAM 3 HD SCSI vivra` ancora anni, con Slackware 10.1.

Mario Vanoni
Mario Vanoni
Iper Master
Iper Master
 
Messaggi: 3174
Iscritto il: lun set 03, 2007 20:20
Località: Cuasso al Monte (VA)
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey

Precedente

Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti