Vous connaissez probablement la syntaxe de bash qui permet d'éxécuter une commande si la commande précédente a réussie:

command1 && command2

ou celle qui permet d'éxécuter une commande en cas d'échec d'une première commande:

command1 || command2

En Shell on peut aussi lancer deux commandes successivement et ce indépendamment du code retour de la première commande:

command1; command2

Mais connaissez-vous la syntaxe suivante de bash:

TZ="Europe/London" date

Cette syntaxe particulière positionne la variable d'environnement TZ à la valeur "Europe/London" et exécute ensuite la commande date avec cette variable d'environnement positionnée. Cela a évidemment l'effet d'afficher la date qu'il est à Londres.

On aurait pu aussi procéder comme ceci:

export TZ="Europe/London" && date

Mais dans ce cas l'export fait que la variable d'environnement TZ "persiste" dans le Shell courant. Ce qui fait que l'heure affichée désormais dans ce terminal sera celle de Londres !

Alors qu'avec la première syntaxe, la variable TZ n'est positionnée que pour la commande qui suit ; la commande date.

Moralité, la syntaxe:

TZ="<Timezone>" date

permet d'obtenir la date dans un autre fuseau horaire que le notre sans changer pour autant notre fuseau horaire.

Enfin, précisons pour finir que la commande date regorge de facilités pour convertir une date en une autre et que la lecture de sa man page est tout a fait recommandée.