date du système dans la variable unix

Je veux lancer le script suivant

#!/bin/sh temp =`date +%Y%m%d` echo "$temp" 

Mais cela ne fonctionne pas comme prévu, il lance ce message d’erreur temp: exécuter l’autorisation refusée

Tu as

 temp =`date +%Y%m%d` ^ 

Vous devez donc supprimer l’espace entre temp et date :

 #!/bin/sh temp=$(date +%Y%m%d) # better than `exp`, thanks @OliverDulac (see comments) echo "$temp" 

Avec ça ça marche pour moi.

Assurez-vous que le fichier dispose des permissions d’exécution:

 chmod +x your_file 

ou juste l’exécuter avec

 /bin/sh /your/script/path/your_file 

temp variable temp doit être atsortingbuée sans espaces.

Votre script a en effet une erreur de syntaxe, pour le corriger, supprimez l’espace après temp dans la deuxième ligne, mais cette erreur ne renverra pas l’ execute permission denied mais la line 2: temp: command not found .

Votre script ne dispose pas des droits d’exécution, pour le réparer, appelez:

 chmod +x FILE.sh 

FILE est le nom de ce script.

Dans les scripts sh (pas seulement bash), le signe égal n’est pas accepté lors de l’atsortingbution d’une variable, car vous pouvez faire quelque chose comme ceci:

 VARIABLE=something ./runcommand 

pour exporter cette variable dans le sous-processus ./runcommand mais pas en général dans tous les sous-processus.

Si l’espace était autorisé, il n’y aurait aucun moyen de distinguer la fin de l’affectation du début de la ligne de commande.

J’ai trouvé l’erreur dans mon code ci-dessus, j’ai autorisé un espace après la chaîne temp . c’est à cause de l’erreur.