Script linux
Fermé
achraf
-
1 juin 2012 à 16:11
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 1 juin 2012 à 18:18
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 1 juin 2012 à 18:18
A voir également:
- Script linux
- Script vidéo youtube - Guide
- Linux mint 32 bits - Télécharger - Systèmes d'exploitation
- Diskinternals linux reader - Télécharger - Stockage
- Linux live usb creator - Télécharger - Outils Internet
- Ghost script - Télécharger - Polices de caractères
2 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 418
1 juin 2012 à 16:15
1 juin 2012 à 16:15
voila ma reponse
if [ -z $1 ];then
echo saisir une chaine de charractere en parametre
fi
trouv='find /home/usr -name "$1" -type f | cut -d "/" -f 4'
if [ $1 = $trouv ];then
echo la chaine que vous avez entrer corresepond les fichiers suivants:
echo $trouv
else
echo aucun fichier trouver
fi
mais il reste un probleme , le programme affiche just le premier parametre $1
if [ -z $1 ];then
echo saisir une chaine de charractere en parametre
fi
trouv='find /home/usr -name "$1" -type f | cut -d "/" -f 4'
if [ $1 = $trouv ];then
echo la chaine que vous avez entrer corresepond les fichiers suivants:
echo $trouv
else
echo aucun fichier trouver
fi
mais il reste un probleme , le programme affiche just le premier parametre $1
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 418
1 juin 2012 à 17:22
1 juin 2012 à 17:22
A quoi elle ressemble ta chaine ?
S'il y a des espaces c'est normal ;-(
Dans ce cas là, soit il faut mettre des guillemets autour lors de son passage en paramètre au script, soit il faut tester "$@" et non "$1".
S'il y a des espaces c'est normal ;-(
Dans ce cas là, soit il faut mettre des guillemets autour lors de son passage en paramètre au script, soit il faut tester "$@" et non "$1".
je ss pas la question n'est pas clair , mais j'ai pris le cas qu'il ya des espaces
voila j'ai ajoute le while et le shift :
f [ -z $1 ];then
echo saisir une chaine de charractere en parametre
else
while [ $# -ne 0 ];do
trouv='find /home/farouky -name "$1" -type f | cut -d "/" -f 4'
if [ $1 = $trouv ];then
echo la chaine que vous avez entrer corresepond les fichiers suivants:
echo $trouv
else
echo aucun fichier trouver
fi
shift
done
fi
c'est juste ??
voila j'ai ajoute le while et le shift :
f [ -z $1 ];then
echo saisir une chaine de charractere en parametre
else
while [ $# -ne 0 ];do
trouv='find /home/farouky -name "$1" -type f | cut -d "/" -f 4'
if [ $1 = $trouv ];then
echo la chaine que vous avez entrer corresepond les fichiers suivants:
echo $trouv
else
echo aucun fichier trouver
fi
shift
done
fi
c'est juste ??
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 418
1 juin 2012 à 18:18
1 juin 2012 à 18:18
A mon avis il faut juste traiter qu'une chaine de caractères (avec ou sans espace) et chercher cette chaine comme étant le nom d'un fichier.
Pour ce qui concerne la commande find (Action : printf) et le découpage pour n'obtenir que le nom du fichier, mieux vaut privilégier soit les fonctionnalités natives de la commande, soit le remplacement des paramètres.
Pour find :
Pour le remplacement de paramètres :
Pour ce qui concerne la commande find (Action : printf) et le découpage pour n'obtenir que le nom du fichier, mieux vaut privilégier soit les fonctionnalités natives de la commande, soit le remplacement des paramètres.
Pour find :
$ find ~/trash/ -type f /home/jp/trash/plop $ find ~/trash/ -type f -printf '%f\n' plop $
Pour le remplacement de paramètres :
$ A=$(find ~/trash/ -type f) $ echo ${A} /home/jp/trash/plop $ echo ${A##*/} plop $