Exercice sur Linux

Résolu/Fermé
rindra91 Messages postés 2 Date d'inscription dimanche 9 décembre 2012 Statut Membre Dernière intervention 10 décembre 2012 - 9 déc. 2012 à 17:31
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 10 déc. 2012 à 19:57
Bonjour,

Je suis actuellement en troisième année de Licence et Linux n'est pas mon point fort. Je viens vers vous donc pour savoir si les réponses sont bonnes. Merci d'avance
Exercice 1
Écrire un script shell qui affiche, à partir du répertoire courant, tous ses répertoires et ses sous répertoires. Pour chaque répertoire rencontré, afficher la liste des fichiers ordinaires qu'il contient utiliser le script de l'exercice précédent).

#!/bin/bash
function browse {

FILES=$1"/*"

for file in $FILES;
do
if [ -d $file ]; then
browse $file
else
echo $file
fi
done
}
browse $1




Exercice 2
Écrire un script shell qui renomme plusieurs fichiers passés en paramètre. Les nouveaux noms ont pour préfixe le 1er paramètre et pour suffixe le rang de renommage.

#!/bin/bash
prefix=$1
i=0
status=0

for file in "$@";
do
if [ $status -eq 1 ]; then
nn=${prefix}${i}
' mv $file $nn'
fi
status=1
i='expr $i + 1'
done

files='pwd'"/*"

for f in $files;
do
echo $f
done



A voir également:

3 réponses

mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
9 déc. 2012 à 23:44
Le mieux pour valider ton approche c'est tout simplement de tester, par exemple en installant linux dans une machine virtual (genre virtual box) ou en l'installant (par exemple sur une clé USB avec unetbootin). Tu peux aussi installer cygwin mais le comportement n'est pas tout à fait le même que sous linux.

Exercice 1 : j'aurais plutôt utilisé find + un tube (pipe) + echo ce qui permet de résoudre l'exercice en une ligne. Je pense que c'est plus la réponse attendue même si à première vue ton script à l'air correct.

Exercice 2. Je ne comprends pas trop l'intérêt de la variable status, pourquoi ne pas avoir initialisé i directement à 1. Je ne comprends pas pourquoi la commande mv est entre quotes.

Bonne chance
0
rindra91 Messages postés 2 Date d'inscription dimanche 9 décembre 2012 Statut Membre Dernière intervention 10 décembre 2012
10 déc. 2012 à 19:54
Merci beaucoup. Cela m'a beaucoup aidé. J'ai installé Oracle VM VirtualBox
0
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
10 déc. 2012 à 19:57
Parfait, est-ce que du coup ton problème est résolu ? Si oui bascule-le en tant que tel à l'aide du lien situé dans ton premier message.

Bonne chance
0