next up previous
Next: Exercices de programmation AWK Up: Examen Télécom 2 Unix Previous: Examen Télécom 2 Unix

Exercices de programmation KSH

N'oubliez pas de commenter vos scripts ksh.

Vérifier:

  1. Réalisez un script ksh qui affiche 10 lignes de 60 caractères `#'. \fbox{\textbf{2~pts}}

    ..

      
    #!/usr/bin/ksh
    
    lignes_restantes=10
    while (( lignes_restantes-- > 0))
        do
        colonnes_restantes=60
        while (( colonnes_restantes-- > 0))
            do
            echo -n '#'  # pas de saut de ligne    
            done
        echo             # saut de ligne
        done
    
    ..

  2. Réalisez un script ksh qui substitue toutes les majuscules d'un fichier texte et les remplace par des minuscules. \fbox{\textbf{1~pts}}

    ..

      
    #!/usr/bin/ksh
    # Substitue les majuscules par des minuscule
    # le shell manipule le contenu des fichier grace au commandes exernes
    
    cat $1 | sed -e y/ABCDEFGHIJKLMNOPQRSTUVWXZ/abcdefghijklmnopqrstuvwxz/
    
    ..

  3. Réalisez un script ksh qui permet de modifier le nom de fichier correspondant à un motif simple en un autre motif simple et non ambigü (utilisant un caractère joker, tel que #).\fbox{\textbf{3~pts}}

    Exemple:

    Unix> ls
    test1.tgz  test2.tgz  test3.tgz 
    Unix> rename.ksh test#tgz resultat#tar.gz
    Unix> ls
    resultat1.tar.gz  resultat2.tar.gz  resultat3.tar.gz
    

    ..

      
    #!/usr/bin/ksh
    # rename.ksh "begin#end" "newbegin#newend"
    #               a    b       c       d
    
    a=${1%\#*}; echo a=$a;  
    b=${1#*\#}; echo b=$b
    
    c=${2%\#*}; echo c=$c;  
    d=${2#*\#}; echo d=$d
    
    for axb in $a*$b
        do
                            echo ________
                            echo axb=${axb}
            ax=${axb%$b};   echo ax=${ax} 
            x=${ax#$a};     echo x=${x} 
            mv $axb $c$x$d; echo "$axb -> $c$x$d" 
        done
    
    ..



Olivier Fourmaux 2003-07-10