Comment vérifier si aujourd'hui, c'est un week-end en bash?
Comment vérifier si aujourd'hui, c'est un week-end à l'aide de bash ou même perl?
Je veux empêcher certains programmes de s'exécuter sur un week-end.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser:
date +%u
vous donne le jour de la semaine à partir de lundi (1) jusqu'à dimanche (7). Si il est plus grand que 5 (samedi = 6 ou dimanche = 7), puis c'est le week-end.De sorte que vous pouvez placer quelque chose comme ça en haut de votre script:
Pour vérifier si il est un jour de la semaine, utilisez:
-lt 6
au lieu de-gt 5
.tm_wday
du C/C++time/ctime
choses. Essayez d'exécuter ladate ; date +%u
et vous verrez ce que je veux dire.date +%w
est numérique; fonctionne dans toutes les languesC'est en fait étonnamment un problème difficile, car qui est-à-dire que "week-end" signifie le samedi et le dimanche... ce qui constitue "le week-end", peut varier à travers les cultures (par exemple, en Israël, les gens de travailler le dimanche et le vendredi, off). Alors que vous pouvez obtenir la date avec le
date
commande, vous aurez besoin de stocker des données supplémentaires indiquant ce qui constitue le week-end pour chaque locale si vous êtes à la mise en œuvre dans une manière qui fonctionne pour tous les utilisateurs. Si vous ciblez un seul pays, alors la solution est posé dans les autres réponses de travail... mais il est toujours bon de garder à l'esprit les hypothèses ici.Utilisation de Perl
localtime
opérateur.Par exemple:
Je ne suis pas vraiment sûr si c'est adapté à cette question, mais je voulais le partager pour aider les autres et c'est le plus proche de la Pile question à ce que je cherchais.
C'est un script shell que j'utilise pour le démarrage d'une application quand je démarre mon ordinateur, l'application ne peut pas se connecter à son serveur pendant le week-end (sa maintenance pour que le service ne fonctionne pas le week-end (trading forex application).
D'informations sur ce script, d est de 1 à 7 (du lundi au soleil) est de 24 h de temps. Vous pouvez l'ajuster à vos propres paramètres, peut-être vous avez une semaine de maintenance ou de toute autre cause. C'est mon premier script shell, donc je suis sûr qu'il ya une meilleure façon et si quelqu'un veut faire des modifications, n'hésitez pas, je passerai en revue pour l'acceptation (ou quelqu'un d'autre peut le faire)