diff --git a/SCR1.1/TP01/tp1.SCR.1.1.pdf b/SCR1.1/TP01/tp1.SCR.1.1.pdf new file mode 100644 index 0000000..3d924b1 Binary files /dev/null and b/SCR1.1/TP01/tp1.SCR.1.1.pdf differ diff --git a/SCR1.1/TP03/dacostaj-7-tp03-reponses.txt b/SCR1.1/TP03/dacostaj-7-tp03-reponses.txt index 7625324..341a44d 100644 --- a/SCR1.1/TP03/dacostaj-7-tp03-reponses.txt +++ b/SCR1.1/TP03/dacostaj-7-tp03-reponses.txt @@ -10,30 +10,35 @@ Hexa : 0-7 8-B C-D E F I. Reconstituer un texte `a partir de son encodage utf-8. -On utilise Hexa +Le texte donne : -ex : -c2 a5 = 0b00010100101 = ¥ +¥, ♠, ℗, $, £, ⬂, ☻, are not all currency symbols. II. La commande read du shell. +1. [user1@salle224-05 TP03]$ help read -La commande help permet d'accéder à la documentation d'une commande interne au shell comme read. +La commande read étant une commande interne au shell, la commande help permet d'accéder directement à sa documentation (ou via man bash au paragraphe SHELL BUILTIN COMMANDS). +2. [user1@salle224-05 TP03]$ echo "$x" -On utilise le symbole $ suivi du nom de la variable pour accéder à sa valeur. +On accède à la valeur d'une variable du shell en précédant son nom du symbole $. +3. [user1@salle224-05 TP03]$ read x 123 -L'option à donner à read pour afficher une chaîne d'invitation (prompt) avant la saisie est l'option -p. +4. +L'option -p permet de faire précéder la saisie de read par l'affichage d'une chaîne de caractères (prompt). -Le caractère ; permet de séparer plusieurs commandes sur une même ligne pour les exécuter séquentiellement. +5. +Le symbole ; permet d'enchaîner plusieurs commandes sur une même ligne pour les exécuter de manière séquentielle. +6. [user1@salle224-05 TP03]$ read -p "Type var value: " var ; echo "var value is: $var" Type var value: patatra var value is: patatra @@ -45,5 +50,62 @@ var value is: 495bl stu...f III. Une commande pour afficher des caractères UNICODE. +1. +L'option à donner à echo est -e. Elle permet d'interpréter les caractères spéciaux d'échappement comme \uXXXX ou \UXXXXXXXX (représentant la valeur d'un caractère UNICODE en hexadécimal). -z +2. +[user1@salle224-05 TP03]$ read -p "Ecrit un HEX UNICODE: " hex ; echo -e "Corresponding CHAR: \U$(printf '%08x' 0x$hex)" +Type an HEX UNICODE: 13000 +Corresponding CHAR: 𓀀 + +[user1@salle224-05 TP03]$ read -p "Ecrit un HEX UNICODE: " hex ; echo -e "Corresponding CHAR: \U$(printf '%08x' 0x$hex)" +Type an HEX UNICODE: 130d2 +Corresponding CHAR: 𓃒 + +[user1@salle224-05 TP03]$ read -p "Ecrit un HEX UNICODE: " hex ; echo -e "Corresponding CHAR: \U$(printf '%08x' 0x$hex)" +Type an HEX UNICODE: 1011F +Corresponding CHAR: 𐄟 + +3. +[user1@salle224-05 TP03]$ echo 'read -p "Type an HEX UNICODE: " hex ; echo -e "Corresponding CHAR: \U$(printf '\''%08x'\'' 0x$hex)"' > print_unicode_char +[user1@salle224-05 TP03]$ chmod +x print_unicode_char +[user1@salle224-05 TP03]$ ./print_unicode_char +Type an HEX UNICODE: 13000 +Corresponding CHAR: 𓀀 + +Pour pouvoir exécuter le fichier print_unicode_char directement comme une commande : +- Il faut ajouter le droit d'exécution sur le fichier à l'aide de chmod +x print_unicode_char. +- Pour l'exécuter sans préciser le chemin (./), il faut placer le fichier dans un répertoire répertorié dans la variable $PATH, ou ajouter le répertoire courant à la variable $PATH. + + +IV. Une commande pour afficher l’encodage utf-8 d’un caract`ere UNICODE. + +1. +L'option à donner à echo pour qu'elle ne fasse pas suivre l'affichage par un retour à la ligne est l'option -n. + +2. +Dans l'illustration de la partie I, hexdump est utilisée avec des options de formatage personnalisées (ex. hexdump -C ou hexdump -e '/1 "%02x "' pour afficher la valeur des octets en hexadécimal). + +3. +[user1@salle224-05 TP03]$ read var1 var2 +valeur1 valeur2 +[user1@salle224-05 TP03]$ echo "var1: $var1 | var2: $var2" +var1: valeur1 | var2: valeur2 + +La commande read permet de saisir plusieurs valeurs séparées par des espaces et de les affecter respectivement à plusieurs variables passées en arguments. + +4. +[user1@salle224-05 TP03]$ read -p "Type an HEX UNICODE: " hex ; echo -n "UTF-8--> " ; echo -n -e "\U$(printf '%08x' 0x$hex)" | hexdump -v -e '/1 "%02x "' ; echo "" +Type an HEX UNICODE: 2660 +UTF-8--> e2 99 a0 + +[user1@salle224-05 TP03]$ read -p "Type an HEX UNICODE: " hex ; echo -n "UTF-8--> " ; echo -n -e "\U$(printf '%08x' 0x$hex)" | hexdump -v -e '/1 "%02x "' ; echo "" +Type an HEX UNICODE: 1D11F +UTF-8--> f0 9d 84 9f + +5. +[user1@salle224-05 TP03]$ echo 'read -p "Type an HEX UNICODE: " hex ; echo -n "UTF-8--> " ; echo -n -e "\U$(printf '\''%08x'\'' 0x$hex)" | hexdump -v -e '\''/1 "%02x "'\'' ; echo ""' > print_utf-8_of_unicode +[user1@salle224-05 TP03]$ chmod +x print_utf-8_of_unicode +[user1@salle224-05 TP03]$ ./print_utf-8_of_unicode +Type an HEX UNICODE: 2660 +UTF-8--> e2 99 a0 diff --git a/SCR1.1/TP03/print_unicode_char b/SCR1.1/TP03/print_unicode_char new file mode 100755 index 0000000..612c203 --- /dev/null +++ b/SCR1.1/TP03/print_unicode_char @@ -0,0 +1 @@ +read -p "Type an HEX UNICODE: " hex ; echo -e "Corresponding CHAR: \U$(printf '%08x' 0x$hex)" diff --git a/SCR1.1/TP03/print_utf-8_of_unicode b/SCR1.1/TP03/print_utf-8_of_unicode new file mode 100755 index 0000000..3e8f034 --- /dev/null +++ b/SCR1.1/TP03/print_utf-8_of_unicode @@ -0,0 +1 @@ +read -p "Type an HEX UNICODE: " hex ; echo -n "UTF-8--> " ; echo -n -e "\U$(printf '%08x' 0x$hex)" | hexdump -v -e '/1 "%02x "' ; echo "" diff --git a/SCR1.1/TP03/print_utf-8_of_unicodeecho b/SCR1.1/TP03/print_utf-8_of_unicodeecho new file mode 100644 index 0000000..e69de29