Arriver le Jour De la Semaine dans le script bash
Je veux avoir le Jour de la Semaine dans la variable DOW
.
J'utilise donc le suivant bash-script:
DOM=$(date +%d)
DOW=($($DOM % 7) ) | sed 's/^0*//'
Mais là, je reçois le message bash: 09: command not found
. Mon résultat désiré est de 2 ( 9 % 7 = 2) dans la variable $DOW
.
Comment réaliser cela?
Le code fonctionne pour les jours 1 à 8, mais de la C-Hex il n'y a pas de numéro sur les 8 disponibles et le message bash: 09: value too great for base (error token is "09")
apparaît.
Il n'est pas clair ce que vous voulez. Si c'est le jour de la semaine, pourquoi vous attendre 2 à partir d'aujourd'hui mercredi?
Le principal problème est que le bash
Le principal problème est que le bash
()
mathématiques analyseur d'expression à tort suppose 0-le préfixe des numéros sont octal, ce qui n'est pas un problème pour 1-7, mais mauvais pour les 08
et 09
. Essayez expr
à la place.OriginalL'auteur bbholzbb | 2014-04-09
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le
-
drapeau:qui empêcherait le jour de collier avec
0
.De
man date
:Observer la différence:
OriginalL'auteur devnull
Utilisation
%u
. Comme ceci:De la page de man:
OriginalL'auteur hek2mgl
L'aide d'un autre %spécificateur est la vraie réponse à votre question. La façon de prévenir les bash de l'étouffement non valide sur les nombres octaux est-à-dire que vous avez une base 10 nombre:
OriginalL'auteur glenn jackman
J'ai toujours trouvé que l'utilisation de 'laisser' est la solution la plus simple pour BASH. Donc, ce serait:
OriginalL'auteur LordWilmore