• Aucun résultat trouvé

30 nov 06 11:20

N/A
N/A
Protected

Academic year: 2022

Partager "30 nov 06 11:20"

Copied!
2
0
0

Texte intégral

(1)

==> EXO.03 <==

#!/bin/bash

# Test préliminaire: si il y a un argument et que le fichier existe [ $# −eq 0 ] && { echo "Erreur : pas de fichier spécifié"; exit 1; }

! [ −e "$1" ] && { echo "Nom de fichier incorrect"; exit 1; } [ −d "$1" ] && echo "Le fichier $1 est un repertoire"

[ −f "$1" ] && echo "Le fichier $1 est un fichier ordinaire"

[ −L "$1" ] && echo "Le fichier $1 est un lien symbolique"

echo −n "\"$1\" est accessible par $USER en :"

[ −r "$1" ] && echo −n " lecture"

[ −w "$1" ] && echo −n " écriture"

[ −x "$1" ] && echo −n " exécution"

# Juste un saut de ligne a la fin pour faire joli echo

==> EXO.04 <==

#!/bin/bash

echo "−−−−−−−−−− Fichers dans $1 −−−−−−−−−−−−−−"

for f in ‘ls $1‘; do

[ −f "$1/$f" ] && echo "$f"

done

echo "−−−−−−−−−− Répertoires dans $1 −−−−−−−−−"

for d in ‘ls $1‘; do

[ −d "$1/$d" ] && echo "$d"

done

==> EXO.05 <==

#!/bin/bash

echo "Utilisateurs ayant un UID>500 :"

for l in $(cat /etc/passwd | cut −d: −f1,3) do #version avec awk :

# [ ‘echo "$l" | awk −F ":" ’{print $2 }’‘ −gt 500 ] && echo "$l"

[ $(echo "$l"| cut −d: −f2) −gt 500 ] && echo "$l"

done

==> EXO.06 <==

#!/bin/bash for f in ‘ls $1‘

do if [ −f "$1/$f" ]

# EXEMPLE de if avec commande non testthen if file −b $1/$f | grep −q text

then echo "Afficher le document texte \"$1/$f\" ? [y/n]"

read ans

[ $ans = "y" ] && less $1/$f fi fi

done

30 nov 06 11:20

stdin

Page 1/4

==> EXO.07−1 <==

#!/bin/bash

#on recoit en arg le nom de base : ex dcp_

for f in [Dd][Cc][Pp]_[0−9]*.[Jj][Pp][Gg]

do numero=$(echo $f | cut −d"_" −f2 | cut −d. −f1) mv $f "photo_$numero.jpg"

done

==> EXO.07−2 <==

#!/bin/bash

F=/usr/X11R6/lib/X11/rgb.txt NBTOTAL=$(cat $F | wc −l) NB=$((RANDOM % NBTOTAL))

COULEUR=$(cat $F | awk ’{print $4}’| head −n $NB | tail −n 1) xterm −bg $COULEUR

==> EXO.08−2−1 <==

#!/bin/bash

# version utilisant &&

for f in $(ls $1)

do nom=$(basename $f) ext=${nom##*.}

num=${nom%.*}

dir=$(dirname $f)

if [ "$ext" = "html" ] && ! [ −e "$dir/$num.xml" ] then

mv $f "$dir/$num.xml"

elif [ "$ext" = "xml" ] && ! [ −e "$dir/$num.html" ] then

mv $f "$dir/$num.html"

fi done

==> EXO.08−2−2 <==

#!/bin/bash

# version utilisant if then else for f in $(ls $1)

do nom=$(basename $f) ext=${nom##*.}

num=${nom%.*}

dir=$(dirname $f) if [ "$ext" = "html" ] then

if ! [ −e "$dir/$num.xml" ] then

mv $f "$dir/$num.xml"

fi

elif [ "$ext" = "xml" ] then

if ! [ −e "$dir/$num.html" ] then

mv $f "$dir/$num.html"

fi

30 nov 06 11:20

stdin

Imprimé par Jean−Vincent Loddo Page 2/4

jeudi 30 novembre 2006 stdin 1/2

(2)

fi done

==> EXO.08−2−3 <==

#!/bin/bash

# version utilisant case

for f in $(ls $1/*.html $1/*.xml) do nom=$(basename $f)

num=${nom%.*}

dir=$(dirname $f)

if ! [ −e "$dir/$num.html" ] then

CAS="xml"

elif ! [ −e "$dir/$num.xml" ] then

CAS="html"

else

CAS="html−xml"

fi

case "$CAS" in "html")

mv $f "$dir/$num.xml"

;;

"xml")

mv $f "$dir/$num.html"

;;

"html−xml") ;;

esac done

==> EXO.09 <==

#!/bin/bash

split −b 1400k $1 $1

==> EXO.10−1 <==

#!/bin/bash

tar cf − $(cat $1) | zip $2 −

==> EXO.10−2 <==

#!/bin/bash TMP=backup.zip

tar cf − $(cat $1) | zip − $TMP split −b 1400k $TMP $TMP

I=1for fichier in $( ls $TMP.* )

do echo "Inserez la disquette n°$I <entrée>"

readmount /mnt/floppy cp $fichier /mnt/floppy umount /mnt/floppy I=$((I+1))

done

30 nov 06 11:20

stdin

Page 3/4

rm −f $TMP.*

rm −f $TMP

echo "sauvegarde terminée"

# En réalité on peut tout faire avec tar:

# tar cvMf /dev/fd0 $(cat $1)

30 nov 06 11:20

stdin

Imprimé par Jean−Vincent Loddo Page 4/4

jeudi 30 novembre 2006 stdin 2/2

Références

Documents relatifs

Une personne dont la demande écrite a été refusée en tout ou en partie par le responsable de l'accès aux documents ou de la protection des renseignements personnels

[r]

EMPLOIS ET RESSOURCES Exercice Exerce précédent. Emplois Ressources

Vu la lettre du 12 mai 2006 enregistrée sous le numéro 06/0032A par laquelle l’Autorité de régulation des communications électroniques et des postes (ARCEP) a sollicité l’avis

AUTORISE Monsieur le Maire à signer la convention ainsi que tout document afférent à l’exécution de cette délibération... Domaine et patrimoine – Locations (3-3) –

Toutefois, le portrait des élèves actuellement inscrits à l’école montre que le nombre d’élèves qui éprouvent des difficultés au niveau du langage écrit tend à augmenter .  Cette tendanc[r]

2) Modifié par l'arrêté royal n° 45 du 26 juin 2020 pris en exécution de l'article 5, § 1 , 5° de la loi du er 27 mars 2020 accordant des pouvoirs au Roi afin de prendre

Bien que l’on ne s’int´eresse, dans ce cours, qu’aux groupes alg´ebriques af- fines, le cadre des vari´et´es alg´ebriques affines n’est pas assez large, car il est