Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.os.linux.iniziare > #74515 > unrolled thread

Sintassi evidenziata con Mc (mcedit)

Started byYoda <yoda@pippo.invalid>
First post2021-01-07 21:38 +0000
Last post2021-02-13 14:55 +0100
Articles 20 on this page of 29 — 5 participants

Back to article view | Back to it.comp.os.linux.iniziare


Contents

  Sintassi evidenziata con Mc (mcedit) Yoda <yoda@pippo.invalid> - 2021-01-07 21:38 +0000
    Re: Sintassi evidenziata con Mc (mcedit) Joe <J@e.invalid> - 2021-01-07 22:51 +0100
      Re: Sintassi evidenziata con Mc (mcedit) Yoda <yoda@pippo.invalid> - 2021-01-07 23:59 +0000
        Re: Sintassi evidenziata con Mc (mcedit) Joe <J@e.invalid> - 2021-01-08 01:26 +0100
          Re: Sintassi evidenziata con Mc (mcedit) Yoda <yoda@pippo.invalid> - 2021-01-08 09:40 +0000
            Re: Sintassi evidenziata con Mc (mcedit) Joe <J@e.invalid> - 2021-01-08 11:52 +0100
              Re: Sintassi evidenziata con Mc (mcedit) Yoda <yoda@pippo.invalid> - 2021-01-08 12:53 +0000
              Re: Sintassi evidenziata con Mc (mcedit) Yoda <yoda@pippo.invalid> - 2021-01-09 08:29 +0000
                Re: Sintassi evidenziata con Mc (mcedit) Joe <J@e.invalid> - 2021-01-09 13:11 +0100
    Re: Sintassi evidenziata con Mc (mcedit) Piergiorgio Sartor <piergiorgio.sartor.this.should.not.be.used@nexgo.REMOVETHIS.de> - 2021-01-07 23:16 +0100
      Re: Sintassi evidenziata con Mc (mcedit) Yoda <yoda@pippo.invalid> - 2021-01-07 23:59 +0000
        Re: Sintassi evidenziata con Mc (mcedit) Piergiorgio Sartor <piergiorgio.sartor.this.should.not.be.used@nexgo.REMOVETHIS.de> - 2021-01-08 12:31 +0100
          Re: Sintassi evidenziata con Mc (mcedit) Yoda <yoda@pippo.invalid> - 2021-01-08 15:22 +0000
            Re: Sintassi evidenziata con Mc (mcedit) Piergiorgio Sartor <piergiorgio.sartor.this.should.not.be.used@nexgo.REMOVETHIS.de> - 2021-01-08 16:44 +0100
        Re: Re: Sintassi evidenziata con Mc (mcedit) "BIG Umberto" <user@langnese.nvg.unit.no> - 2021-01-08 14:18 +0000
          Re: Sintassi evidenziata con Mc (mcedit) Yoda <yoda@pippo.invalid> - 2021-01-08 15:22 +0000
        Re: Sintassi evidenziata con Mc (mcedit) Piergiorgio Sartor <piergiorgio.sartor.this.should.not.be.used@nexgo.REMOVETHIS.de> - 2021-01-08 15:18 +0100
          Re: Sintassi evidenziata con Mc (mcedit) Yoda <yoda@pippo.invalid> - 2021-01-08 15:22 +0000
            Re: Sintassi evidenziata con Mc (mcedit) Piergiorgio Sartor <piergiorgio.sartor.this.should.not.be.used@nexgo.REMOVETHIS.de> - 2021-01-08 16:45 +0100
      Re: Sintassi evidenziata con Mc (mcedit) Yoda <yoda@pippo.invalid> - 2021-01-31 20:12 +0000
        Re: Sintassi evidenziata con Mc (mcedit) Alessandro Selli <trappola@route-add.net> - 2021-02-01 12:44 +0100
          Re: Sintassi evidenziata con Mc (mcedit) Yoda <yoda@pippo.invalid> - 2021-02-01 17:38 +0000
          Re: Sintassi evidenziata con Mc (mcedit) Yoda <yoda@pippo.invalid> - 2021-02-03 07:54 +0000
            Re: Sintassi evidenziata con Mc (mcedit) Alessandro Selli <trappola@route-add.net> - 2021-02-04 00:31 +0100
              Re: Sintassi evidenziata con Mc (mcedit) Yoda <yoda@pippo.invalid> - 2021-02-04 11:13 +0000
                Re: Sintassi evidenziata con Mc (mcedit) Alessandro Selli <trappola@route-add.net> - 2021-02-05 12:17 +0100
                  Re: Sintassi evidenziata con Mc (mcedit) Yoda <yoda@pippo.invalid> - 2021-02-05 13:52 +0000
                    Re: Sintassi evidenziata con Mc (mcedit) Yoda <yoda@pippo.invalid> - 2021-02-11 18:27 +0000
                      Re: Sintassi evidenziata con Mc (mcedit) Alessandro Selli <trappola@route-add.net> - 2021-02-13 14:55 +0100

Page 1 of 2  [1] 2  Next page →


#74515 — Sintassi evidenziata con Mc (mcedit)

FromYoda <yoda@pippo.invalid>
Date2021-01-07 21:38 +0000
SubjectSintassi evidenziata con Mc (mcedit)
Message-ID<rt7v13$r22$1@dont-email.me>
[ crosspost it.comp.os.linux.iniziare,it.comp.os.linux.software ]


Perche' con $() tra virgolette annidati mcedit sbaglia, perdendo per
strada una virgoletta? sara' un bug (difficile) o e' a me, che mi
sfugge qualcosa (facile)?

Ecco, per chiarezza, come ad esempio mi tocca scrivere:
---------
#!/bin/bash

t_UTC="$1"

ANNI="$(echo \
"$(date -u "+%Y - 1970" --date=@${t_UTC})" | bc -l)"
--------------

altrimenti, se non vado inutilmente a capo con \, l'eventuale
seguito resta come fosse tutto commentato.


[ crosspost it.comp.os.linux.iniziare,it.comp.os.linux.software ]

-- 
Yoda

[toc] | [next] | [standalone]


#74516

FromJoe <J@e.invalid>
Date2021-01-07 22:51 +0100
Message-ID<2c46.5ff7825b.c5eee@for.test.net>
In reply to#74515
Yoda <yoda@pippo.invalid> wrote:
> [ crosspost it.comp.os.linux.iniziare,it.comp.os.linux.software ]
> 
> 
> Perche' con $() tra virgolette annidati mcedit sbaglia, perdendo per
> strada una virgoletta? sara' un bug (difficile) o e' a me, che mi
> sfugge qualcosa (facile)?
> 
> Ecco, per chiarezza, come ad esempio mi tocca scrivere:
> ---------
> #!/bin/bash
> 
> t_UTC="$1"
> 
> ANNI="$(echo \
> "$(date -u "+%Y - 1970" --date=@${t_UTC})" | bc -l)"
> --------------
> 
> altrimenti, se non vado inutilmente a capo con \, l'eventuale
> seguito resta come fosse tutto commentato.
> 
> 
> [ crosspost it.comp.os.linux.iniziare,it.comp.os.linux.software ]


Cosa dovrebbe calcolare il tuo script?

Quale argomento gli dai?

t_UTC che è impostato a primo argomento cosa sarebbe?

Fai un esempio di utilizzo dello script: come lo lanci da terminale.

[toc] | [prev] | [next] | [standalone]


#74519

FromYoda <yoda@pippo.invalid>
Date2021-01-07 23:59 +0000
Message-ID<rt879m$hiu$2@dont-email.me>
In reply to#74516
Addi' 07 gen 2021 21:51:23, Joe scrive:
> Yoda <yoda@pippo.invalid> wrote:

>> [ crosspost it.comp.os.linux.iniziare,it.comp.os.linux.software ]

>> Perche' con $() tra virgolette annidati mcedit sbaglia, perdendo per
>> strada una virgoletta? sara' un bug (difficile) o e' a me, che mi
>> sfugge qualcosa (facile)?

>> Ecco, per chiarezza, come ad esempio mi tocca scrivere:
>> ---------
>> #!/bin/bash

>> t_UTC="$1"

>> ANNI="$(echo \
>> "$(date -u "+%Y - 1970" --date=@${t_UTC})" | bc -l)"
>> --------------

>> altrimenti, se non vado inutilmente a capo con \, l'eventuale
>> seguito resta come fosse tutto commentato.

>> [ crosspost it.comp.os.linux.iniziare,it.comp.os.linux.software ]


> Cosa dovrebbe calcolare il tuo script?

Il numero di anni.

> Quale argomento gli dai?

Numero di secondi, positivo sempre.

> t_UTC che è impostato a primo argomento cosa sarebbe?

La durata in secondi (ascissa temporale con origine al tempo zero
del 1/1/1970", cioe' 1970-01-01 00:00:00.000000000).

> Fai un esempio di utilizzo dello script: come lo lanci da terminale.

$: ./pippo 6546418548412028870

Mi da' gli anni civili, son molto difficili da calcolare.. se faccio
all'antica: 1 anno = 365 giorni e quattro ore, c'e' errore anche
rispetto all'anno tropico ciao comunque lo scherzetto mcedit e' da
molto che me lo fa e con molti altri script del tutto differenti

-- 
Yoda

[toc] | [prev] | [next] | [standalone]


#74520

FromJoe <J@e.invalid>
Date2021-01-08 01:26 +0100
Message-ID<4ec3.5ff7a6a3.3908f@for.test.net>
In reply to#74519
Yoda <yoda@pippo.invalid> wrote:
> Addi' 07 gen 2021 21:51:23, Joe scrive:
>> Yoda <yoda@pippo.invalid> wrote:
> 
>>> [ crosspost it.comp.os.linux.iniziare,it.comp.os.linux.software ]
> 
>>> Perche' con $() tra virgolette annidati mcedit sbaglia, perdendo per
>>> strada una virgoletta? sara' un bug (difficile) o e' a me, che mi
>>> sfugge qualcosa (facile)?
> 
>>> Ecco, per chiarezza, come ad esempio mi tocca scrivere:
>>> ---------
>>> #!/bin/bash
> 
>>> t_UTC="$1"
> 
>>> ANNI="$(echo \
>>> "$(date -u "+%Y - 1970" --date=@${t_UTC})" | bc -l)"
>>> --------------
> 
>>> altrimenti, se non vado inutilmente a capo con \, l'eventuale
>>> seguito resta come fosse tutto commentato.
> 
>>> [ crosspost it.comp.os.linux.iniziare,it.comp.os.linux.software ]
> 
> 
>> Cosa dovrebbe calcolare il tuo script?
> 
> Il numero di anni.
> 
>> Quale argomento gli dai?
> 
> Numero di secondi, positivo sempre.
> 
>> t_UTC che è impostato a primo argomento cosa sarebbe?
> 
> La durata in secondi (ascissa temporale con origine al tempo zero
> del 1/1/1970", cioe' 1970-01-01 00:00:00.000000000).
> 
>> Fai un esempio di utilizzo dello script: come lo lanci da terminale.
> 
> $: ./pippo 6546418548412028870


L'esempio non è calzante, l'argomento è troppo grande.
Quando si chiede e viene richiesto un esempio meglio
sempre fare un esempio cosrretto. Per capirsi dar modo
di fare una prova e poter verificare precisamente.

Esempio:

$ ./pippo.sh 654641849
20


Con 654641849 secondi, mi ritorna 20 anni.

Conto a spanne:

$ echo "654641849/(3600*24*365)"|bc
20

Direi che ci siamo...

Vediamo pippo.sh, molto simile al tuo:
--------------------------------------
$ cat pippo.sh
#!/bin/bash

t_UTC=$1
ANNI=$(date -u --date=@${t_UTC} +%Y-1970 |bc)
echo $ANNI
----------

Troppe virgolette non servono.

ANNI è un numero intero, non contiene spazi, virgolette non e servono.
t_UTC è un numero intero, vedi sopra

Ma soprattutto bc interpreta in input via pipe l'output del comando
"date", e non ha problemi con gli spazi.

In più l'echo che inserivi tu non serve. Già il comando date produce
l'output corretto.

Invece servono per formattare correttamente l'argomento del comando
date, se lo vuoi scrivere con gli spazi. Ma non serve neanche quello
se adiamo a vedere. Perché potresti banalmente scrivere:

date +%Y-1970

come ho messo io sopra. E ti risparmi anche quelle virgolette lì.

[toc] | [prev] | [next] | [standalone]


#74522

FromYoda <yoda@pippo.invalid>
Date2021-01-08 09:40 +0000
Message-ID<rt99a2$8e2$1@dont-email.me>
In reply to#74520
Addi' 08 gen 2021 00:26:11, Joe scrive:
> Yoda <yoda@pippo.invalid> wrote:

>> $: ./pippo 6546418548412028870

-snip-
> Vediamo pippo.sh, molto simile al tuo:
> --------------------------------------
> $ cat pippo.sh
> #!/bin/bash

> t_UTC=$1
> ANNI=$(date -u --date=@${t_UTC} +%Y-1970 |bc)
> echo $ANNI
> ----------

> Troppe virgolette non servono.

Si', me l'ha detto anche Piergiorgio. L'esempio che ho postato era
estratto da righe piu' complicate, ho sbagliato a copiare senza
controllare e scusate.
Pero' la questione riguarda mcedit soltanto, adesso lo mostro
meglio.

PRIMO CASO
script_1:
--------------
#! /bin/bash

if [ $1 -lt 0 ]; then
POSITIVO="$(echo -($1) | bc)"
fi
echo $POSITIVO
--------------------

Se do:
$: ./script_1 -3

bash mi da' errore:
-cite-
./script_1: command substitution: riga 5: errore di sintassi vicino al
token non atteso "("
./script_1: command substitution: riga 5: `echo -($1) | bc)"'
-/cite-


SECONDO CASO
Allora  ci metto le virgolette:
script_2:
--------------
#! /bin/bash

if [ $1 -lt 0 ]; then
POSITIVO="$(echo "-($1)" | bc)"
fi
echo $POSITIVO
--------------------

e adesso succedono queste due cose:
1. mcedit da' tutte le righe seguenti commentate, cioe' in verde
(in questo caso il "fi" e l' "echo $POSITIVO")
2. mentre invece bash esegue perfettamente, restituendomi 3.

Ecco, la questione-domanda e' questa ciao e grazie eh

-snip-
> ANNI è un numero intero, non contiene spazi, virgolette non e servono.
> t_UTC è un numero intero, vedi sopra
> Ma soprattutto bc interpreta in input via pipe l'output del comando
> "date", e non ha problemi con gli spazi.
> In più l'echo che inserivi tu non serve. Già il comando date produce
> l'output corretto.

Si', certo.. solo che prima il "- 1970" era fuori comando data, ho
riportato senza controllare - ariscusate:-(  e ariciao

-- 
Yoda

[toc] | [prev] | [next] | [standalone]


#74523

FromJoe <J@e.invalid>
Date2021-01-08 11:52 +0100
Message-ID<91d.5ff83978.a9221@for.test.net>
In reply to#74522
Yoda <yoda@pippo.invalid> wrote:
> 
> Pero' la questione riguarda mcedit soltanto, adesso lo mostro
> meglio.

No, l'esempio che hai mostrato è proprio sintatticamente errato.


> PRIMO CASO
> script_1:
> --------------
> #! /bin/bash
> 
> if [ $1 -lt 0 ]; then
> POSITIVO="$(echo -($1) | bc)"

Qua c'è errore. Correzione:

POSITIVO=$(echo "-($1)" | bc)

Le virgolette esterne non servono, per lo stesso motivo di
ieri. POSITIVO è un numero, niente spazi, niente virgolette.
Le virgolette interne invece servono a proteggere le parentesi,
quelle interne, -($1), che sono necessare a bc per essere
interpretate al fine del cambio segno.

mcedit che presumo sia l'editor che usi, e che non conosco,
non centra nulla fin qui.




> SECONDO CASO
> Allora  ci metto le virgolette:
> script_2:
> --------------
> #! /bin/bash
> 
> if [ $1 -lt 0 ]; then
> POSITIVO="$(echo "-($1)" | bc)"
> fi
> echo $POSITIVO
> --------------------
> 
> e adesso succedono queste due cose:
> 1. mcedit da' tutte le righe seguenti commentate, cioe' in verde
> (in questo caso il "fi" e l' "echo $POSITIVO")
> 2. mentre invece bash esegue perfettamente, restituendomi 3.
> 
> Ecco, la questione-domanda e' questa ciao e grazie eh

Intanto come già detto sopra, le virgolette esterne le
puoi togliere, non sono necessarie.
Poi evidentemente l'evidenziazione sintattica dell'editor
o va in panne oppure è proprio fatta così.
Volendo puoi anche toglierla:
F9 opzioni evidenziazione sintassi
la imposti ad unknown e via.

Altrimenti prova altri editor.
Io uso vim per lo più.
Anche lì comunque in certi casi, la sintassi evidenziata
non è sempre perfetta. Vado a memoria, ma in rare occasioni
mi sembra di ricordare qualche svarione...

Se vuoi restare su mcedit, devi cercare bene in rete su come
impostarlo correttamente per avere una schermata comoda e
cercare bene situazioni che riportano il problema rilevato,
sicuramente no sei il primo ad accorgerti di questo comportamento,
e sicuramente qualcuno lo avrà fatto presente e gli avranno anche
proposto delle soluzioni.
Se non trovi in italiano cerca in inglese. Trovi molta più roba,
manco a dirlo...

[toc] | [prev] | [next] | [standalone]


#74528

FromYoda <yoda@pippo.invalid>
Date2021-01-08 12:53 +0000
Message-ID<rt9kkl$e89$1@dont-email.me>
In reply to#74523
Addi' 08 gen 2021 10:52:40, Joe scrive:
> Yoda <yoda@pippo.invalid> wrote:

-snip-
>> SECONDO CASO
>> Allora  ci metto le virgolette:
>> script_2:
>> --------------
>> #! /bin/bash

>> if [ $1 -lt 0 ]; then
>> POSITIVO="$(echo "-($1)" | bc)"
>> fi
>> echo $POSITIVO
>> --------------------

>> e adesso succedono queste due cose:
>> 1. mcedit da' tutte le righe seguenti commentate, cioe' in verde
>> (in questo caso il "fi" e l' "echo $POSITIVO")
>> 2. mentre invece bash esegue perfettamente, restituendomi 3.

>> Ecco, la questione-domanda e' questa ciao e grazie eh

> Intanto come già detto sopra, le virgolette esterne le
> puoi togliere, non sono necessarie.
> Poi evidentemente l'evidenziazione sintattica dell'editor
> o va in panne oppure è proprio fatta così.

Allora comincio a pensare che e' proprio un bug, perche' anche se
tolgo l'errore che dici delle virgolette inutili, mcedit fa la
stessa e identica cosa: tutto il seguito e' considerato commento:
POSITIVO="$(echo "-($1)" | bc)" -> il seguito e' commento
POSITIVO=$(echo "-($1)" | bc)   -> il seguito e' commento

Dunque il bug e' che considera il blocco $("()") come una sola
virgoletta ciao e grazie eh

> Volendo puoi anche toglierla:
> F9 opzioni evidenziazione sintassi
> la imposti ad unknown e via.

> Altrimenti prova altri editor.
> Io uso vim per lo più.
> Anche lì comunque in certi casi, la sintassi evidenziata
> non è sempre perfetta. Vado a memoria, ma in rare occasioni
> mi sembra di ricordare qualche svarione...

> Se vuoi restare su mcedit, devi cercare bene in rete su come
> impostarlo correttamente per avere una schermata comoda e
> cercare bene situazioni che riportano il problema rilevato,
> sicuramente no sei il primo ad accorgerti di questo comportamento,
> e sicuramente qualcuno lo avrà fatto presente e gli avranno anche
> proposto delle soluzioni.
> Se non trovi in italiano cerca in inglese. Trovi molta più roba,
> manco a dirlo...

Ok ancora grazie.. aggiungo, a quanto sopra, che mi e' oramai
evidente che mcedit pensa che la /prima/ chiusa-parentesi che
incontra dopo $( sia di chiusura della sostituzione di comando:
$(echo "-($1)

equivale a:
$(pippo)

per cui le successive virgolette:
" | bc)

valgono come apertura d'un commento ariciao

-- 
Yoda

[toc] | [prev] | [next] | [standalone]


#74545

FromYoda <yoda@pippo.invalid>
Date2021-01-09 08:29 +0000
Message-ID<rtbphf$t36$1@dont-email.me>
In reply to#74523
Addi' 08 gen 2021 10:52:40, Joe scrive:
> Yoda <yoda@pippo.invalid> wrote:

>> Pero' la questione riguarda mcedit soltanto, adesso lo mostro
>> meglio.

> No, l'esempio che hai mostrato è proprio sintatticamente errato.

>> PRIMO CASO
>> script_1:
>> --------------
>> #! /bin/bash

>> if [ $1 -lt 0 ]; then
>> POSITIVO="$(echo -($1) | bc)"

> Qua c'è errore. Correzione:

> POSITIVO=$(echo "-($1)" | bc)

Oggi mi son scocciato di tutti questi casini con parentesi e
virgolette varie e ho fatto semplicissimamente cosi':

POSITIVO=$(echo $1 | tr -d '-')

dici che corro qualche pericolo ciao?

-- 
Yoda

[toc] | [prev] | [next] | [standalone]


#74549

FromJoe <J@e.invalid>
Date2021-01-09 13:11 +0100
Message-ID<ccc.5ff99d65.1eb6e@for.test.net>
In reply to#74545
Yoda <yoda@pippo.invalid> wrote:
> Addi' 08 gen 2021 10:52:40, Joe scrive:
>> Yoda <yoda@pippo.invalid> wrote:
> 
>>> Pero' la questione riguarda mcedit soltanto, adesso lo mostro
>>> meglio.
> 
>> No, l'esempio che hai mostrato è proprio sintatticamente errato.
> 
>>> PRIMO CASO
>>> script_1:
>>> --------------
>>> #! /bin/bash
> 
>>> if [ $1 -lt 0 ]; then
>>> POSITIVO="$(echo -($1) | bc)"
> 
>> Qua c'è errore. Correzione:
> 
>> POSITIVO=$(echo "-($1)" | bc)
> 
> Oggi mi son scocciato di tutti questi casini con parentesi e
> virgolette varie e ho fatto semplicissimamente cosi':
> 
> POSITIVO=$(echo $1 | tr -d '-')
> 
> dici che corro qualche pericolo ciao?

Non direi, anzi ti risparmi anche il controllo condizionale...
------------------
$ echo 9 |tr -d -
9

$ echo -9 |tr -d -
9
------------------

A me funziona anche senza apici.
Per cui:

POSITIVO=$(echo $1 | tr -)

Senza "if" e senza apici ' '.

[toc] | [prev] | [next] | [standalone]


#74517

FromPiergiorgio Sartor <piergiorgio.sartor.this.should.not.be.used@nexgo.REMOVETHIS.de>
Date2021-01-07 23:16 +0100
Message-ID<8rdkch-f03.ln1@lazy.lzy>
In reply to#74515
On 07/01/2021 22.38, Yoda wrote:
> [ crosspost it.comp.os.linux.iniziare,it.comp.os.linux.software ]
> 
> 
> Perche' con $() tra virgolette annidati mcedit sbaglia, perdendo per
> strada una virgoletta? sara' un bug (difficile) o e' a me, che mi
> sfugge qualcosa (facile)?
> 
> Ecco, per chiarezza, come ad esempio mi tocca scrivere:
> ---------
> #!/bin/bash
> 
> t_UTC="$1"
> 
> ANNI="$(echo \
       ^--virgolette aperte> "$(date -u "+%Y - 1970" --date=@${t_UTC})"
| bc -l)"
  ^--virgolette chiuse

"a"b"c"

Significa che "a" e "c" sono tra virgolette,
non che 'a"b"c' e` tra virgolette ed anche 'b'...

Che poi, quante virgolette metti?

bye,

-- 

piergiorgio

[toc] | [prev] | [next] | [standalone]


#74518

FromYoda <yoda@pippo.invalid>
Date2021-01-07 23:59 +0000
Message-ID<rt879m$hiu$1@dont-email.me>
In reply to#74517
Addi' 07 gen 2021 22:16:40, Piergiorgio Sartor scrive:
> On 07/01/2021 22.38, Yoda wrote:
>> [ crosspost it.comp.os.linux.iniziare,it.comp.os.linux.software ]

>> Perche' con $() tra virgolette annidati mcedit sbaglia, perdendo per
>> strada una virgoletta? sara' un bug (difficile) o e' a me, che mi
>> sfugge qualcosa (facile)?

>> Ecco, per chiarezza, come ad esempio mi tocca scrivere:
>> ---------
>> #!/bin/bash

>> t_UTC="$1"

>> ANNI="$(echo \
>        ^--virgolette aperte> "$(date -u "+%Y - 1970" --date=@${t_UTC})"
> | bc -l)"
>   ^--virgolette chiuse

> "a"b"c"

> Significa che "a" e "c" sono tra virgolette,
> non che 'a"b"c' e` tra virgolette ed anche 'b'...

> Che poi, quante virgolette metti?

Si' (e no!), ma in ogni caso quello che non capiso e' perche' a bash
il comando arriva corretto anche senza l'a capo ed invece mcedit con
l'a capo non segue piu' il tuo schema-ragionamento e la smette di
commentare nel seguito.

D'altra parte m'ero distratto, perche' a date la direttiva "+%Y -
1970" posso metterla (molto meglio) tra apici: '+%Y - 1970', pero'
anche cosi' per mcedit non cambia nulla (ho provato adesso).

Pertanto vediamolo punto per punto:
ANNI="$(echo "$(date -u '+%Y - 1970' --date=@${t_UTC})" | bc -l)"
ebbene:

1. l'output di date e' ad esempio:
2023 - 1970
dunque e' obbligatorio passarlo a bc con virgolette:
"$(date -u '+%Y - 1970' --date=@${t_UTC})"
doppie perche' interviene la variabile t_UTC.

2. Resta allora soltanto l'output di bc.. dici che e' sbagliato
metterle o in ogni caso che son troppe? Be', in questo caso e' un
numero, ma considera che in altri casi potrebbero esserci spazi
(ho scritto-chiesto adesso, ma e' da molto che mcedit mi fa questo
scherzetto anche con comandi dove le virgolette sono assolutamente
indispensabili) ciao

-- 
Yoda

[toc] | [prev] | [next] | [standalone]


#74524

FromPiergiorgio Sartor <piergiorgio.sartor.this.should.not.be.used@nexgo.REMOVETHIS.de>
Date2021-01-08 12:31 +0100
Message-ID<5eslch-4s3.ln1@lazy.lzy>
In reply to#74518
On 08/01/2021 00.59, Yoda wrote:
[...]
> Si' (e no!), ma in ogni caso quello che non capiso e' perche' a bash
> il comando arriva corretto anche senza l'a capo ed invece mcedit con
> l'a capo non segue piu' il tuo schema-ragionamento e la smette di
> commentare nel seguito.

Forse perche` i due hanno parser diversi e,
di conseguenza, opinioni diverse.

In ogni caso, io cercherei di evitare tutte
queste virgolette, visto che sono comunque
una cosa non troppo corretta.

> D'altra parte m'ero distratto, perche' a date la direttiva "+%Y -
> 1970" posso metterla (molto meglio) tra apici: '+%Y - 1970', pero'
> anche cosi' per mcedit non cambia nulla (ho provato adesso).
> 
> Pertanto vediamolo punto per punto:
> ANNI="$(echo "$(date -u '+%Y - 1970' --date=@${t_UTC})" | bc -l)"
       ^       ^-chiuse
        \-aperte

Fai sempre lo stesso *errore*!

Non e` la sintassi corretta per quello
che vuoi fare tu.

Usa due variabili.

bye,

-- 

piergiorgio

[toc] | [prev] | [next] | [standalone]


#74533

FromYoda <yoda@pippo.invalid>
Date2021-01-08 15:22 +0000
Message-ID<rt9tc3$p8m$2@dont-email.me>
In reply to#74524
Addi' 08 gen 2021 11:31:49, Piergiorgio Sartor scrive:
> On 08/01/2021 00.59, Yoda wrote:

>> Pertanto vediamolo punto per punto:
>> ANNI="$(echo "$(date -u '+%Y - 1970' --date=@${t_UTC})" | bc -l)"
>        ^       ^-chiuse
>         \-aperte

> Fai sempre lo stesso *errore*!

Pero' c'e' da pensarci un po', perche' guarda:
echo a(1) | bc -l
da' errore, sono obbligate le virgolette:
echo "a(1)" | bc -l

Ebbene, se fosse come dici tu, allora questa:
echo "$(echo "a(1)" | bc -l)"

dovrebbe dare errore, perche' i pezzi sarebbero questi tre:
echo "$(echo "
a(1)
" | bc -l)"

e bash protesterebbe per la sostituzione di comando a(1), mentre
invece va perfettamente (a prescindere dalle virgolette ridondanti
e dall'inutile primo comando echo).

> Non e` la sintassi corretta per quello
> che vuoi fare tu.

> Usa due variabili.

Si', questa e' proprio una buona idea, facilita anche la lettura del
codice ciao e grazie

-- 
bye, Yoda

[toc] | [prev] | [next] | [standalone]


#74535

FromPiergiorgio Sartor <piergiorgio.sartor.this.should.not.be.used@nexgo.REMOVETHIS.de>
Date2021-01-08 16:44 +0100
Message-ID<h8bmch-4s3.ln1@lazy.lzy>
In reply to#74533
On 08/01/2021 16.22, Yoda wrote:
> Addi' 08 gen 2021 11:31:49, Piergiorgio Sartor scrive:
>> On 08/01/2021 00.59, Yoda wrote:
> 
>>> Pertanto vediamolo punto per punto:
>>> ANNI="$(echo "$(date -u '+%Y - 1970' --date=@${t_UTC})" | bc -l)"
>>        ^       ^-chiuse
>>         \-aperte
> 
>> Fai sempre lo stesso *errore*!
> 
> Pero' c'e' da pensarci un po', perche' guarda:
> echo a(1) | bc -l
> da' errore, sono obbligate le virgolette:
> echo "a(1)" | bc -l

No, non lo sono.
L'errore sta nel fatto che "(" sono gia`
processata da shell, quindi si deve *solo*
fare in modo che non lo siano.

echo 'a(1)' | bc -l
echo a\(1\) | bc -l

Funzionano tutti.

Nel tuo caso, pero`, non c'e` niente del genere.

> Ebbene, se fosse come dici tu, allora questa:
> echo "$(echo "a(1)" | bc -l)"
> 
> dovrebbe dare errore, perche' i pezzi sarebbero questi tre:
> echo "$(echo "
> a(1)
> " | bc -l)"
> 
> e bash protesterebbe per la sostituzione di comando a(1), mentre
> invece va perfettamente (a prescindere dalle virgolette ridondanti
> e dall'inutile primo comando echo).

Non e` questo il punto.
Scritto in quella maniera e` incomprensibile
e si presta ad errori.

Il fatto che l'ordine di espansione della shell,
in questo caso, sia favorevole, non vuol dire
che sia corretto usarlo.

Puo` essere un altro caso in cui non lo e`.

bye,

-- 

piergiorgio

[toc] | [prev] | [next] | [standalone]


#74530

From"BIG Umberto" <user@langnese.nvg.unit.no>
Date2021-01-08 14:18 +0000
Message-ID<rt9pka$1sep$1@gioia.aioe.org>
In reply to#74518
In it.comp.os.linux.iniziare Yoda <yoda@pippo.invalid> wrote:
> (ho scritto-chiesto adesso, ma e' da molto che mcedit mi fa questo
> scherzetto anche con comandi dove le virgolette sono assolutamente
> indispensabili) ciao

Mcedit fa diverse volte anche in altri contesti lo stesso errore, e male
interpreta nella evidenziazione i comandi annidati.
Tranquillo, lo fa da anni pure a me.

In questo spezzone:

        y="${r%"${r##*[![:space:]]}"}"
        printf '%s\n' "$y"
        t=$((t+1))

dalla chiusura dell'ultima parentesi graffa, è tutto evidenziato come commento!



-- 
---
 * Origin: Valentina_(.)  (2:332/213.22)

[toc] | [prev] | [next] | [standalone]


#74534

FromYoda <yoda@pippo.invalid>
Date2021-01-08 15:22 +0000
Message-ID<rt9tc3$p8m$3@dont-email.me>
In reply to#74530
Addi' 08 gen 2021 14:18:50, BIG Umberto scrive:
> In it.comp.os.linux.iniziare Yoda <yoda@pippo.invalid> wrote:

>> (ho scritto-chiesto adesso, ma e' da molto che mcedit mi fa questo
>> scherzetto anche con comandi dove le virgolette sono assolutamente
>> indispensabili) ciao

> Mcedit fa diverse volte anche in altri contesti lo stesso errore, e male
> interpreta nella evidenziazione i comandi annidati.
> Tranquillo, lo fa da anni pure a me.

Ok grazie!

> In questo spezzone:

>         y="${r%"${r##*[![:space:]]}"}"
>         printf '%s\n' "$y"
>         t=$((t+1))

> dalla chiusura dell'ultima parentesi graffa, è tutto evidenziato
> come commento!

Si' oramai lo schema logico di mcedit l'ho capito, guarda come vede
il tuo "${r%"${r##*[![:space:]]}"}"

"${quello_che_vuoi_tanto_non_mi_riguarda}"}"

cioe' tre oggetti:
1. "${a}"
2. }
3. "+a_capo

la prima chiusa-graffa la riferisce alla prima aperta, la seconda
aperta neppure la guarda, come non guarda-vede le seconde virgolette
(perche' anch'esse interne a {}) ciao

-- 
Yoda

[toc] | [prev] | [next] | [standalone]


#74531

FromPiergiorgio Sartor <piergiorgio.sartor.this.should.not.be.used@nexgo.REMOVETHIS.de>
Date2021-01-08 15:18 +0100
Message-ID<976mch-4s3.ln1@lazy.lzy>
In reply to#74518
On 08/01/2021 00.59, Yoda wrote:
[...]
> 1. l'output di date e' ad esempio:
> 2023 - 1970
> dunque e' obbligatorio passarlo a bc con virgolette:

No, non e` obbligatorio.
Inoltre, funziona anche *senza* echo...

Questo:

date -u '+%Y - 1970' --date=2021-01-08T15:15:42 | bc -l

Senza "echo" e senza virgolette funziona.

Al massimo, servono le virgolette intorno
alla variabile "t_UTC", se vi sono spazi,
cosa che non credo sia il caso...

bye,

-- 

piergiorgio

[toc] | [prev] | [next] | [standalone]


#74532

FromYoda <yoda@pippo.invalid>
Date2021-01-08 15:22 +0000
Message-ID<rt9tc3$p8m$1@dont-email.me>
In reply to#74531
Addi' 08 gen 2021 14:18:49, Piergiorgio Sartor scrive:
> On 08/01/2021 00.59, Yoda wrote:

> [...]
>> 1. l'output di date e' ad esempio:
>> 2023 - 1970
>> dunque e' obbligatorio passarlo a bc con virgolette:

> No, non e` obbligatorio.
> Inoltre, funziona anche *senza* echo...

> Questo:

> date -u '+%Y - 1970' --date=2021-01-08T15:15:42 | bc -l

> Senza "echo" e senza virgolette funziona.

Si', non l'avrei mai detto ciao e grazie!

-- 
Yoda

[toc] | [prev] | [next] | [standalone]


#74536

FromPiergiorgio Sartor <piergiorgio.sartor.this.should.not.be.used@nexgo.REMOVETHIS.de>
Date2021-01-08 16:45 +0100
Message-ID<aabmch-4s3.ln1@lazy.lzy>
In reply to#74532
On 08/01/2021 16.22, Yoda wrote:
[...]
>> date -u '+%Y - 1970' --date=2021-01-08T15:15:42 | bc -l
> 
>> Senza "echo" e senza virgolette funziona.
> 
> Si', non l'avrei mai detto ciao e grazie!

Perche` no?

Prima di scrivere cose "complicate", bisogna
sempre iniziare con quelle semplici.

Far diventare cose semplici complicate e`
facile, il contrario e` difficile.

bye,

-- 

piergiorgio

[toc] | [prev] | [next] | [standalone]


#74692

FromYoda <yoda@pippo.invalid>
Date2021-01-31 20:12 +0000
Message-ID<rv72ve$rqe$1@dont-email.me>
In reply to#74517
Addi' 07 gen 2021 22:16:40, Piergiorgio Sartor scrive:
> On 07/01/2021 22.38, Yoda wrote:

-snip-

> Che poi, quante virgolette metti?

Lo vedi perche' m'e' venuta la fissa delle virgolette? guarda questo
caso.
-----------
#!/usr/bin/env bash

if [ -n "$(echo $1 | grep -e "/" -e "[[:alpha:]]")" ]; then
echo pieno
else
echo vuoto
fi
----------------

ebbene: senza le virgolette esterne da' sempre pieno (ho provato
anche a metterci "echo -n"), qualunque cosa io ci metta in $1.
Me lo dici se e come lo puoi spiegare? perche' in fondo in fondo io
sulle virgolette doppie o semplici non ci ho mai capito molto, cosi'
le metto sempre a meno che non diano errore ciao

-- 
Yoda

[toc] | [prev] | [next] | [standalone]


Page 1 of 2  [1] 2  Next page →

Back to top | Article view | it.comp.os.linux.iniziare


csiph-web