#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
... 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.
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
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 ?
================
... 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
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
... on s'est contenté de répondre à sa question ...
C'est vrais que comme je débute,
j'ai plutôt tendance à étaler tout ça comme de la confiture..
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
j'adore vraiment cette section du forum pour la rapidité de l'aide et de la patience/gentillesse de ses contributeurs
14.04 unity et Linux Mint KDE 13 zsh-meilleur shell script fire
Hors ligne