l'usage de ls dans un script est une mauvaise pratique.
fais une boucle sur les fichiers du répertoire (en utilisant le Remplacement de chemin (cf. le man bash)), et passe chaque fichier à stat (cf. man stat ) pour n'extraire que le nom du propriétaire, et le comparer avec test au nom de l'utilisateur indiqué.
c'est le B A BA des scripts shell : boucler sur les fichiers d'un répertoire.
- Edité par dantonq 24 janvier 2020 à 19:27:23
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
#! /bin/bash
if(($#!=2))
then
echo “Syntaxe Error $0 dir”
exit 0
fi
if [[! -d $1 ]]
then
Echo “$1 must be a directory”
Exit 1
fi
cdir=0
files=$(ls $1)
#loop
For file in $files
do
condition=($ls -ld file | cut -d “ “ -f 3)
if [[ $condition == $2 ]]
then
cdir=$((cdir +1))
fi
done
echo "Nombre d'occurrence du $2=$cdir"
J'ai fait tout mon effort. Veuillez me corriger cette fois!
#!/bin/bash #pas d'espace
if (($#!=2)) #là, il faut un espace
then
echo “Syntaxe Error $0 dir”
exit 0
fi
if [[ ! -d $1 ]] #là, aussi
then
Echo “$1 must be a directory”
exit 1 #Attention à la casse : Exit n'existe pas, c'est exit
fi
cdir=0
files=$(ls $1) #NON, pas ls !
#loop
For file in $files
do
condition=($ls -ld file | cut -d “ “ -f 3) # NOoooN ! pas ls !
if [[ $condition == $2 ]]
then
cdir=$((cdir +1))
fi
done
echo "Nombre d'occurrence du $2=$cdir"
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
Merci beaucoup j'essayerai tout de suite de le corriger!
Script sous LINUX j'ai besoin d'aide!!
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique