Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 13/05/2020, à 18:17

joe217

[Résolu] utiliser un script dans un script

Bonjour
j'aimerais savoir comment utiliser un script dans mon script ?;

#!/bin/zsh


for filename in $@
do
$filename ./liste.sh
done

en gros ce script peut prendre n paramètres de fichiers et exécuter pour chaque fichier le script liste.sh, , script exécutable.
le probleme est que j'ai un permission denied ; ?
merci

Dernière modification par joe217 (Le 14/05/2020, à 16:09)

Hors ligne

#2 Le 13/05/2020, à 18:22

DonutMan75

Re : [Résolu] utiliser un script dans un script

Hello,
c'est bizarre j'aurais mis ça dans l'autre sens :

for filename in $@
do
./liste.sh "$filename"
done

Et dans liste.sh, on utilise "$1" pour récupérer $filename.

Donut

Hors ligne

#3 Le 13/05/2020, à 18:31

alex2423

Re : [Résolu] utiliser un script dans un script

Quand tu as un souci sur Bash, le truc à faire, c'est de faire un echo juste avant pour voir exactement ce qui est executé par le script et ou cela bloque, tu l'éxecute ensuite dans un shell.

Il faut y aller étape par étape avant d'automatiser dans un script shell.

Hors ligne

#4 Le 13/05/2020, à 18:36

kamaris

Re : [Résolu] utiliser un script dans un script

Tu peux te passer du in $@ pour boucler sur les paramètres positionnels (ça t'évitera d'avoir des problèmes avec les espaces) :

for filename
do
./liste.sh "$filename"
done

Hors ligne

#5 Le 13/05/2020, à 18:43

Watael

Re : [Résolu] utiliser un script dans un script

et si tu mets $@, il faut le mettre entre guillemets :

$ maFonc() { printf '%s\n' $@;}
$ maFonc 'a b'
a
b
$ maFonc() { printf '%s\n' "$@";}
$ maFonc 'a b'
a b
$

Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#6 Le 14/05/2020, à 16:09

joe217

Re : [Résolu] utiliser un script dans un script

merci pour vos aide ça marche

Hors ligne