Résumé :
Au final, le souci semble spécifique à la commande date.
En effet les autres commandes se francisent bien via des modifications de LANG, LC_*...
La solution la plus simple semble être celle-ci :
Créer une nouvelle commande /usr/bin/dateFR (qu'il faut rendre exécutable) :
#!/bin/bash
LC_TIME=fr_FR.UTF-8 date "${@}"
et l'appeler depuis le script.
En effet, écrire son contenu directement dans le script ne change pas la locale...
L'autre solution (si pas droits sudo) serait de faire un truc du genre :
case "$(date -d 1984-10-12 +%a)" in
Sun*) jrs='Dim.' ;;
Mon*) jrs='Lun.' ;;
Tue*) jrs='Mar.' ;;
Wed*) jrs='Mer.' ;;
Thu*) jrs='Jeu.' ;;
Fri*) jrs='Ven.' ;;
Sat*) jrs='Sam.' ;;
esac
date -d "1984-10-12" +"${jrs} %d/%m"
Bonsoir,
je suis en train de me créer ma petite version perso du script d'arrivée sur un serveur en ssh.
Tout fonctionne bien... ou presque 😃
Je ne comprends pas du tout le fonctionnement des langues des commandes que j'appelle.
Pour faire simple, en mettant les commandes :
date
who
j'obtiens :
Mon Jan 25 18:13:33 CET 2021
hizo pts/0 Jan 25 17:38 (XX.XX.XX.XX)
date est en anglais et who en français.
j'ai testé de jouer avec les variables LANG et LANGUAGE mais aucune différence...
Quand je lance ces commande une fois arrivé sur le terminal distant, c'est l'inverse, date est en français mais pas who.
Par contre les variables LANG me permettent d'obtenir ce que je veux.
Pour le coup je voudrais :
date en FR (pour pouvoir utiliser %a et %A)
who en US (plus facile pour gérer mon script)
dans mon script /etc/update-motd.d/00-hizo
Une idée ?
Merci bien
EDIT : Précision :
A la connexion ssh :
hizo pts/0 Jan 25 17:38 (XX.XX.XX.XX)
Une fois dans le terminal :
hizo-j pts/0 2021-01-25 17:38 (XX.XX.XX.XX)
Mais si je fais :
LANG=fr who
Alors j'ai le même format que lors de la connexion ssh.
Je voudrais le format 2021-01-25 17:38.