Path: csiph.com!aioe.org!qvCPidw+OZqSKO4uVUTGLQ.user.gioia.aioe.org.POSTED!not-for-mail From: Joe Newsgroups: it.comp.os.linux.iniziare,it.comp.os.linux.software Subject: Re: Sintassi evidenziata con Mc (mcedit) Date: Fri, 08 Jan 2021 01:26:11 +0100 Organization: Aioe.org NNTP Server Lines: 92 Message-ID: <4ec3.5ff7a6a3.3908f@for.test.net> References: <2c46.5ff7825b.c5eee@for.test.net> NNTP-Posting-Host: qvCPidw+OZqSKO4uVUTGLQ.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Complaints-To: abuse@aioe.org X-Notice: Filtered by postfilter v. 0.9.2 Xref: csiph.com it.comp.os.linux.iniziare:74520 it.comp.os.linux.software:5478 Yoda wrote: > Addi' 07 gen 2021 21:51:23, Joe scrive: >> 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 \ >>> "$(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ì.