[Linuxtrent] Re: comportamento strano del comando date in uno script bash

  • From: Antonio Galea <antonio.galea@xxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Mon, 14 May 2012 10:02:22 +0200

2012/5/14 Marco Agostini <comunelevico@xxxxxxxxx>:
>
> Vi riporto un estratto dello script bash
> "/usr/lib/asterisk/scripts/mailfax" a cui sto mettendo mano:
>
> #!/bin/sh
> # recupero la data in lingua italiana
> LANG=it_IT.UTF-8
> DATETIME=`date +"%A %d %b %Y %H:%M"`
> echo $DATETIME;
> exit 0
>
> se lancio lo script direttamente da riga di comando ottengo qualcosa del tipo:
> lunedì 14 mag 2012 09:40
> ma quando lo script viene lanciato da un "applicativo" esterno (nel
> mio caso Asterisk) ottengo qualcosa del tipo:
> Monday 14 May 2012 09:40
> dove sto sbagliando ?

La tua shell interattiva è già in italiano, vero?

I backticks lanciano un processo, che NON eredita
le variabili interne alla shell originaria a meno che tu
non lo dica esplicitamente con export:

   export LANG=it_IT.UTF-8
   DATETIME=`date +"%A %d %b %Y %H:%M"`
   echo $DATETIME

Meglio ancora, puoi applicare il locale solo al comando
che ti occorre:

   DATETIME=`LANG=it_IT.UTF-8 date +"%A %d %b %Y %H:%M"`
   echo $DATETIME

Antonio
--
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: