Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Crontab : jours en anglais ?

3 réponses
Avatar
Ben
Bonjour,

(J'espère être dans le bon forum, je ne savais pas trop
où poser ma question)

Soit le petit script sh suivant :

#!/bin/bash

# Jour en abrégé. Servira à construire le nom du fichier final
JOUR=`date '+%a'`
echo $JOUR > /home/admin/log
mail etc...



Quand je lance ce script en ligne de commande, j'ai le jour abrégé en
français
-> dim, lun, mar, etc, et ça me convient bien.

Quand je le lance par crontab, il est en anglais :
-> sun, mon, etc

J'aimerais comprendre pourquoi.

Ce n'est pas bien méchant, mais je le préfère en fr,
pour plus de clarté pour les utilisateurs.
Du coup j'ai fait une fonction qui 'convertit' les jours en fr.

(Je précise que je ne suis pas du tout un spécialiste linux...)

la distribution utilisée :
Gentoo Base System version 1.6.14, sur un serveur dédié


Merci à vous.

3 réponses

Avatar
Thierry B.
--{ Ben a plopé ceci: }--


Quand je lance ce script en ligne de commande, j'ai le jour abrégé en
français
-> dim, lun, mar, etc, et ça me convient bien.

Quand je le lance par crontab, il est en anglais :
-> sun, mon, etc

J'aimerais comprendre pourquoi.



La variable LANG n'est pas la même.
Au prompt du shell, tu regardes ce qu'elle est:

$ echo $LANG


Puis tu rajoutes en tête du script:

export LANGÎ_que_tu_viens_de_lire

A priori, ça devrait régler le problème.


--
...
... Mmmm
...
By the way, all OSes are bloated, no ?
Avatar
Nicolas S.
Ben a écrit:

Quand je lance ce script en ligne de commande, j'ai le jour abrégé en
français
-> dim, lun, mar, etc, et ça me convient bien.

Quand je le lance par crontab, il est en anglais :
-> sun, mon, etc



C'est un problème de locale probablement dû à un changement
d'utilisateur ou à l'invocation non-interactive du shell.

Tu dois pouvoir fixer la variable LC_TIME via locadef dans ton script.

--
Nicolas S.
Avatar
Ben
> export LANGÎ_que_tu_viens_de_lire



Ça marche parfaitement.

Merci de votre aide à vous deux.