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 24/08/2013, à 03:23

omnimax

fonction $1 $2 $dernièrevariable

Bonsoir, j'aimerai implémenter dans ma fonction qui regroupe tous les pdf en un seul puis réduit le fichier pdf créé
usage : gpdf nomfichiergroupé 

gpdf() 
{
if [ "$#" -eq 0 ]; then 
	echo "vous devez indiquer le nom final du fichier"
elif [[ $1 == *.(pdf|PDF) ]]; then
	echo "vous ne devez pas mettre l'extension, nous la mettons pour vous"
else 
	pdftk *.(pdf|PDF) cat output "$1".pdf && gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=out.pdf "$1".pdf && mv out.pdf "$1".pdf && mplayer $HOME/voice-system-activated.wav && ls -l -t -h
fi
}

le fait de pouvoir faire ceci

gpdf fichier1.pdf fichier2.pdf fichiersgroupés

usage : gpdf  fichierchoisi1.pdf fichierchoisi2.pdf nomfichiergroupé 
Ainsi je peux quand je le désire fabriquer un pdf groupé à partir d'une sélection de fichiers.

Il faudrait donc que j'arrive à identifier la dernière variable $
Si je sais avoir

commande $1 $2 $3... $dernièrevariable 

Alors je pense pouvoir le coder dans ma fonction.

Merci pour votre réponse.

Dernière modification par omnimax (Le 24/08/2013, à 03:28)


14.04 unity et Linux Mint KDE 13 zsh-meilleur shell   script fire

Hors ligne

#2 Le 24/08/2013, à 04:56

MicP

Re : fonction $1 $2 $dernièrevariable

omnimax a écrit :

... identifier la dernière variable $ ...

echo "il y a $# paramètre(s)"
echo "la liste du premier à l'avant dernier paramètre est: ${@:1:($#-1)}"
echo "le dernier paramètre est : ${@:$#}"

Dernière modification par MicP (Le 24/08/2013, à 05:20)

Hors ligne

#3 Le 24/08/2013, à 08:50

tiramiseb

Re : fonction $1 $2 $dernièrevariable

Salut,

Tu peux chercher "Special Parameters" dans la page de manuel de bash, tu auras pas mal de détails là-dessus.

Pour ce que tu veux faire, tu peux éventuellement travailler sur la variable "$@", qui contient tous les paramètres passés au script.

Hors ligne

#4 Le 24/08/2013, à 12:03

Hizoka

Re : fonction $1 $2 $dernièrevariable

MicP propose de bonne solutions et j'ajouterais :

echo "${@: -1}"

attention a l'espace entre les : et le -


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#5 Le 24/08/2013, à 13:18

MicP

Re : fonction $1 $2 $dernièrevariable

Merci tiramiseb et Hizoka,
je suis en train de faire mes débuts dans l'apprentissage de la programmation en autodidacte
et je commence par le "bash",
alors les commentaires de programmeurs comme vous, ça me fait très plaisir.

AMHA, on pourrait spécifier dans la ligne de commande:
le paramètre "fichier concaténé" par l'option "-o",
la suite des nom de fichiers à concaténer suivrait.
et ajouter une option "-h" pour faire afficher un fichier d'aide.
De cette façon, le nom du fichier de sortie peut être donné avec son extension.
Ensuite, il suffirait d'utiliser "getopts" dans le script pour récupérer tout ça.

Qu'en pensez-vous ?

================

Hizoka a écrit :

... attention a l'espace entre les : et le - ...

Histoire d'éviter une confusion possible avec la formulation d'une substitution de paramètres
mais comme je n'utilisais ni "+" ni "-"...
Mais peut-être qu'il aurait été plus sage de mettre un espace quand même, non ?

Dernière modification par MicP (Le 24/08/2013, à 14:35)

Hors ligne

#6 Le 24/08/2013, à 13:23

Hizoka

Re : fonction $1 $2 $dernièrevariable

Oui oui tout à fait.

getopts n'est pas parfait mais suffisant pour ce genre de chose.

Il est vrai qu'on s'est contenté de répondre à sa question wink


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#7 Le 24/08/2013, à 13:38

MicP

Re : fonction $1 $2 $dernièrevariable

Hizoka a écrit :

... on s'est contenté de répondre à sa question ...

C'est vrais que comme je débute,
smile j'ai plutôt tendance à étaler tout ça comme de la confiture.. smile
moins on en a....

Dernière modification par MicP (Le 24/08/2013, à 13:40)

Hors ligne

#8 Le 25/08/2013, à 12:28

omnimax

Re : fonction $1 $2 $dernièrevariable

waouw, merci les amis pour tant d'explications wink

j'adore vraiment cette section du forum pour la rapidité de l'aide et de la patience/gentillesse de ses contributeurs smile


14.04 unity et Linux Mint KDE 13 zsh-meilleur shell   script fire

Hors ligne