
Filtre actif, cliquez pour en enlever un tag :
Cliquez sur un ou plusieurs tags pour appliquer un filtre sur la liste des notes de type "Journaux" :
Résultat de la recherche (6 notes) :
Dimanche 6 juillet 2025
Journal du dimanche 06 juillet 2025 à 10:14
Il m'arrive régulièrement de perdre du temps en tentant d'insérer des lignes de commentaires dans des commandes Bash multiline, par exemple comme ceci :
sudo qemu-system-x86_64 \
-m 8G \
-smp 4 \
-enable-kvm \
-drive file=ubuntu-working-layer.qcow2,format=qcow2 \
-drive file=cloud-init.img,format=raw \
-nographic \
\ # Folder sharing between the host system and the virtual machine:
-fsdev local,id=fsdev0,path=$(pwd)/shared/,security_model=mapped-file \
-device virtio-9p-pci,fsdev=fsdev0,mount_tag=host_share \
\ # Allows virtual machine to access the Internet
\ # and port forwarding to access virtual machine via ssh:
-nic user,ipv6-net=fd00::/64,hostfwd=tcp::2222-:22
Malheureusement, cette syntaxe n'est pas supportée par Bash et à ma connaissance, il n'existe aucune solution en Bash pour atteindre mon objectif.
Je suis ainsi contraint de diviser la documentation en deux parties : l'une pour l'exécution de la commande, l'autre pour expliquer les paramètres. Voici ce que cela donne :
sudo qemu-system-x86_64 \
-m 8G \
-smp 4 \
-enable-kvm \
-drive file=ubuntu-working-layer.qcow2,format=qcow2 \
-drive file=cloud-init.img,format=raw \
-nographic \
-fsdev local,id=fsdev0,path=$(pwd)/shared/,security_model=mapped-file \
-device virtio-9p-pci,fsdev=fsdev0,mount_tag=host_share \
-nic user,ipv6-net=fd00::/64,hostfwd=tcp::2222-:22
# Here are some explanations of the parameters used in this command
#
# Folder sharing between the host system and the virtual machine:
#
# ```
# -fsdev local,id=fsdev0,path=$(pwd)/shared/,security_model=mapped-file
# -device virtio-9p-pci,fsdev=fsdev0,mount_tag=host_share
# ```
#
# Allows virtual machine to access the Internet
# and port forwarding to access virtual machine via ssh:
#
# ```
# -nic user,ipv6-net=fd00::/64,hostfwd=tcp::2222-:22
# ```
Je me souviens d'avoir étudié Oils shell en octobre dernier et je me suis demandé si ce shell supporte ou non les commentaires sur des commandes multiline.
La réponse est oui : "multiline-command".
Exemple dans ce playground :
#!/usr/bin/env osh
... ls
-l
# comment 1
--all
# comment 2
--human-readable;
Chaque fois que je me plonge dans Oils, je trouve ce projet intéressant.
J'aimerais l'utiliser, mais je sais que c'est un projet de niche et qu'en contexte d'équipe, je rencontrerais sans doute des difficultés d'adoption. Je pense que je ferais face à des oppositions.
Je pense tout de même à l'utiliser dans mes projets personnels, mais j'ai peur de trop l'apprécier et d'être frustré ensuite si je ne peux pas l'utiliser en équipe 🤔.
Samedi 7 décembre 2024
Journal du samedi 07 décembre 2024 à 21:18
Dans le repository poc-git-monorepo-multirepos-sync
, j'ai pour la première fois expérimenté l'utilisation d'un script Bash qui génère dynamiquement le contenu d'une démo d'un terminal.
Le contenu du fichier README.md est généré par /generate-readme.sh
qui exécute demo.sh et qui enregistre la sortie standard dans README.md
.
À l'usage, l'expérience était agréable.
Lundi 18 novembre 2024
Journal du lundi 18 novembre 2024 à 09:26
#JaiDécouvert le template shell suivant : https://github.com/adriancooney/Taskfile
Lundi 14 octobre 2024
Journal du lundi 14 octobre 2024 à 14:24
#JaiDécouvert en Bash que si EOF
est entre guillements, c'est-à-dire 'EOF'
alors les variables $
ne seront pas substitué.
Exemple, le script suivant :
cat <<'EOF' > /test.sh
echo "Hello, $USER"
EOF
est l'équivalent de :
cat <<EOF > /test.sh
echo "Hello, \$USER"
EOF
Documentation à ce sujet dans la seciton "Here Documents" du manuel de Bash :
No parameter and variable expansion, command substitution, arithmetic expansion, or filename expansion is performed on word. If any part of word is quoted, the delimiter is the result of quote removal on word, and the lines in the here-document are not expanded.
If word is unquoted, all lines of the here-document are subjected to parameter expansion, command substitution, and arithmetic expansion, the character sequence \newline is ignored, and ‘\’ must be used to quote the characters ‘\’, ‘$’, and ‘`’.
Mercredi 22 mai 2024
Journal du mercredi 22 mai 2024 à 11:57
Alexandre vient de me donner le conseil Bash suivant.
De remplacer mon usage de :
set -e`
par :
set -euo pipefail
e
=> Arrête l'exécution à la première erreuru
=> Génère une erreur si une variable n'est pas définie (il faut mettre des valeurs par défaut aux variables d'env)o pipefail
=> Renvoie une erreur si une commande dans un pipe échoue
Je lui dit merci 🙂.
Fin de la liste des notes.