Files
SCR/SCR1.1/TP03/dacostaj-7-tp03-reponses.txt
T
2026-10-20 16:21:59 +02:00

112 lines
4.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Préfixes : 0 10 110 1110 1111...
Hexa : 0-7 8-B C-D E F
C2 A5
1100 0010 1010 0101
00010100101
I. Reconstituer un texte `a partir de son encodage utf-8.
Le texte donne :
¥, ♠, ℗, $, £, ⬂, ☻, are not all currency symbols.
II. La commande read du shell.
1.
[user1@salle224-05 TP03]$ help 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 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
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).
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
[user1@salle224-05 TP03]$ read -p "Type var value: " var ; echo "var value is: $var"
Type var value: 495bl stu...f
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).
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