Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/10/2007, 14h12   #1
Membre confirmé
 
Avatar de Chatbour
 
Étudiant
Inscription : septembre 2006
Messages : 427
Détails du profil
Informations personnelles :
Localisation : Tunisie

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2006
Messages : 427
Points : 263
Points : 263
Par défaut script pour ajouter des droits d'exécution aux scripts

Salut à tous

J'essaye d'écrire un script qui ajoute des droits d'exécution aux fichiers scripts se trouvant sous le répertoire courant :
Code :
1
2
3
4
5
6
7
8
9
10
11
 
#!/bin/bash
 
for fichier in $(ls)
do
  if test -f $fichier; then
    if test $(head -1 $fichier)="#!bin/bash"; then
      chmod u+x $fichier
    fi
  fi
done
le problème c'est que cela marche pour tous les fichiers !
où est la faute ?

Merci d'avance..
Chatbour est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2007, 15h04   #2
LLB
Membre Expert
 
Inscription : mars 2002
Messages : 946
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 946
Points : 1 085
Points : 1 085
Utilise des simple quotes au lieu des doubles. Je pense que ton point d'exclamation est interprété par le shell (avec l'historique).

En passant :
$(ls) peut être avantageusement remplacé par *.

Et tu voudras peut-être tester juste la présence du she-bang, avec head -c2. Ton test est assez limité et échouera s'il y a une espace après le she-bang ou si un autre shell est utilisé.
LLB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2007, 15h52   #3
Membre confirmé
 
Avatar de Chatbour
 
Étudiant
Inscription : septembre 2006
Messages : 427
Détails du profil
Informations personnelles :
Localisation : Tunisie

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2006
Messages : 427
Points : 263
Points : 263
Merci LLB mais ça n'a pas résolu le problème
Chatbour est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2007, 16h02   #4
LLB
Membre Expert
 
Inscription : mars 2002
Messages : 946
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 946
Points : 1 085
Points : 1 085
Code :
if test "$(head -c2 $fichier)" = '#!'; then
LLB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2007, 17h40   #5
Membre confirmé
 
Avatar de Chatbour
 
Étudiant
Inscription : septembre 2006
Messages : 427
Détails du profil
Informations personnelles :
Localisation : Tunisie

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2006
Messages : 427
Points : 263
Points : 263
ça résout parfaitement mon problème !

Merci beaucoup LLB : merci pour votre disponibilité pour aider les autres
Chatbour est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h34.


 
 
 
 
Partenaires

Hébergement Web