Les Allergies
Alimentaires
Posez votre question Signaler

Comment créer un scritp shell (bash, sh, etc)

Fredodelsuza - Dernière réponse le 4 oct. 2007 à 10:13
Bonjour,
Débutant sur linux, je cherche a creer un "Shell" que j'executerais en ligne de commande et qui me permettrait bètement de comprésser récursivement des dossier au format .tar
Ex :
Compresser le "dossier1" vers "dossier1.tar"
puis comprésser le "dossier2" vers "dossier2.tar"
Puis... dossier 3...
Bien sur le nom des dossier etant préalablement connue.
Voilà, si quelqu'un peux m'aider...
Merci...
Lire la suite 

Comment créer un scritp shell (bash, sh, etc) »

1 réponses
Réponse
+5
moins plus
Bonjour,

Je vais partir du principe que tu connais les commandes pour faire un tar d'un dossier.
Pour faire un script, le plus constructif est de lire les pages man de bash (man bash), de lire les diffèrents scripts dans /etc, ...

Pour faire simple, un script est un simple fichier texte.
La première ligne est souvent #!/bin/bash qui indique à ton shell que quand tu cherches à exécuter ce fichier, l'interpreteur à utiliser est /bin/bash.

Les variables passées en paramètres au script son stockées dans les variables $1, $2, $3, etc.

Dans le cas le plus simple, tu n'as pas besoin de plus.
#!/bin/bash

DOSSIER=$1
tar -cvf ${DOSSIER}.tar $DOSSIER
Ce script prend un nom de dossier en paramètre, ne fait aucun test sur l'existance de ce dossier, et tente d'en faire un tar.
Admettons que le script se nomme MakeTar.sh
[prompt]$ chmod +x MakeTar.sh
[prompt]$ ./MakeTar.sh mon_dossier

Pour le reste, il faut potasser, potasser , et encore potasser.

@+
Ajouter un commentaire
Ce document intitulé « Comment créer un scritp shell (bash, sh, etc) » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?