Files
SCR/SCR1.1/TP03/dacostaj-7-tp03-reponses.txt
T

112 lines
4.2 KiB
Plaintext
Raw Normal View History

2026-09-23 15:05:57 +02:00
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.
2026-10-20 16:21:59 +02:00
Le texte donne :
2026-09-23 15:05:57 +02:00
2026-10-20 16:21:59 +02:00
¥, ♠, ℗, $, £, ⬂, ☻, are not all currency symbols.
2026-09-23 15:05:57 +02:00
II. La commande read du shell.
2026-10-20 16:21:59 +02:00
1.
2026-09-23 15:05:57 +02:00
[user1@salle224-05 TP03]$ help read
2026-10-20 16:21:59 +02:00
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).
2026-09-23 15:05:57 +02:00
2026-10-20 16:21:59 +02:00
2.
2026-09-23 15:05:57 +02:00
[user1@salle224-05 TP03]$ echo "$x"
2026-10-20 16:21:59 +02:00
On accède à la valeur d'une variable du shell en précédant son nom du symbole $.
2026-09-23 15:05:57 +02:00
2026-10-20 16:21:59 +02:00
3.
2026-09-23 15:05:57 +02:00
[user1@salle224-05 TP03]$ read x
123
2026-10-20 16:21:59 +02:00
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).
2026-09-23 15:05:57 +02:00
2026-10-20 16:21:59 +02:00
5.
Le symbole ; permet d'enchaîner plusieurs commandes sur une même ligne pour les exécuter de manière séquentielle.
2026-09-23 15:05:57 +02:00
2026-10-20 16:21:59 +02:00
6.
2026-09-23 15:05:57 +02:00
[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.
2026-10-20 16:21:59 +02:00
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).
2026-09-23 15:05:57 +02:00
2026-10-20 16:21:59 +02:00
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