From 5f0198a200e3c298f6fc060d008ebb3d5cdab81a Mon Sep 17 00:00:00 2001 From: makayabou Date: Sat, 21 Nov 2020 02:35:09 +0100 Subject: [PATCH] add read and heredoc --- docs/divers/cmd/heredoc.md | 31 +++++++++++++++++++++ docs/divers/cmd/index.md | 2 ++ docs/divers/cmd/read.md | 50 ++++++++++++++++++++++++++++++++++ docs/divers/cmd/screen.md | 2 ++ docs/divers/devops/hugo.md | 12 ++++---- gndoc-workspace.code-workspace | 7 +++++ mkdocs.yml | 2 ++ 7 files changed, 100 insertions(+), 6 deletions(-) create mode 100644 docs/divers/cmd/heredoc.md create mode 100644 docs/divers/cmd/read.md create mode 100644 gndoc-workspace.code-workspace diff --git a/docs/divers/cmd/heredoc.md b/docs/divers/cmd/heredoc.md new file mode 100644 index 00000000..eb973da7 --- /dev/null +++ b/docs/divers/cmd/heredoc.md @@ -0,0 +1,31 @@ +# Heredoc + +Heredoc permet d'envoyer du contenu multi-lignes, que ce soit sur la sortie du terminal ou dans une commande. + +On utilise un **Here Tag**, qui est souvent `EOF`mais que vous pouvez nommer comme vous voulez. + +#### Multi-lignes SANS Heredoc (avec `\n`) + +``` +text=$'premièreligne\ndeuxièmeligne' +``` + +#### Utilisation dans une variable +``` +visiteur@domani:~$ MA_VARIABLE=$(cat < file.txt +premiere ligne +deuxième ligne +EOF1 +``` \ No newline at end of file diff --git a/docs/divers/cmd/index.md b/docs/divers/cmd/index.md index c989ab71..dbfe4cc1 100644 --- a/docs/divers/cmd/index.md +++ b/docs/divers/cmd/index.md @@ -4,3 +4,5 @@ - [rsync](backup.md) - [nmcli](nmcli.md) - [Monter une partition](mount.md) +- [read](read.md), pour permettre à l'utilisateur d'interagir avec un script (user prompt / user input) +- [heredoc](heredoc.md), le fameux `EOF`, pour afficher du contenu sur plusieurs lignes diff --git a/docs/divers/cmd/read.md b/docs/divers/cmd/read.md new file mode 100644 index 00000000..2e7100db --- /dev/null +++ b/docs/divers/cmd/read.md @@ -0,0 +1,50 @@ +# Read + +`read` est le programme Bash qui permet à l'utilisateur d'interagir avec un script (user prompt / user input). + +C'est ce qui est utilisé par exemple, quand la commande `apt` nous demande de confirmer l'installation d'un logiciel. + +Le principe c'est d'afficher un message à l'écran (avec `echo` par exemple), puis de lancer la commande pour capter la saisie de l'utilisateur. +On utilise ensuite la valeur saisie stockée dans une variable. + +!!! tip + Utilisez [`HereDoc`](heredoc.md) pour afficher du contenu sur plusieurs lignes! + +#### Usage minimal +``` +visiteur@domani:~$ read +mot +visiteur@domani:~$ echo $REPLY +mot +``` + +#### Définissez la variable qui contient le résultat, au lieu du défaut `$REPLY` +``` +visiteur@domani:~$ read MAREPONSE +truc +visiteur@domani:~$ echo $MAREPONSE +truc +``` + +#### Utilisez ++space++, ou n'importe quel caractère pour délimiter la fin de la réponse +``` +visiteur@domani:~$ read '-d ' +truc visiteur@domani:~$ + +visiteur@domani:~$ read '-dA' +trucAvisiteur@domani:~$ +``` + +#### Utiliser `read -s` pour garder secrète la saisie de l'utilisateur +``` +visiteur@domani:~$ read -s +visiteur@domani:~$ echo $REPLY +secret +``` + +#### Utilisez `read -p` pour afficher un message avant la saisie (pas de retour à la ligne) +``` +visiteur@domani:~$ read -p "Continuez ? (y/n) : " +Continuez ? (y/n) : y +``` + diff --git a/docs/divers/cmd/screen.md b/docs/divers/cmd/screen.md index c70d67bd..6481db9c 100644 --- a/docs/divers/cmd/screen.md +++ b/docs/divers/cmd/screen.md @@ -21,3 +21,5 @@ screen -r nom-de-la-session **See https://linuxize.com/post/how-to-use-linux-screen/** + +** Pour splitter l'écran: https://tomlee.co/2011/10/gnu-screen-splitting/** \ No newline at end of file diff --git a/docs/divers/devops/hugo.md b/docs/divers/devops/hugo.md index fe1b943f..07506efc 100644 --- a/docs/divers/devops/hugo.md +++ b/docs/divers/devops/hugo.md @@ -36,12 +36,12 @@ cd my-website #### Download the last version ``` -curl -s https://api.github.com/repos/gohugoio/hugo/releases/latest \ - | grep browser_download_url \ - | grep Linux-64bit.deb \ - | grep -v extended \ - | cut -d '"' -f 4 \ - | wget -i +curl -s https://api.github.com/repos/gohugoio/hugo/releases/latest \ + | grep browser_download_url \ + | grep Linux-64bit.deb \ + | grep -v extended \ + | cut -d '"' -f 4 \ + | wget -i - ``` #### Install it diff --git a/gndoc-workspace.code-workspace b/gndoc-workspace.code-workspace new file mode 100644 index 00000000..362d7c25 --- /dev/null +++ b/gndoc-workspace.code-workspace @@ -0,0 +1,7 @@ +{ + "folders": [ + { + "path": "." + } + ] +} \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index 2ca8c1cc..6cd00a4b 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -76,6 +76,8 @@ nav: - divers/cmd/screen.md - divers/cmd/nmcli.md - divers/cmd/mount.md + - divers/cmd/read.md + - divers/cmd/heredoc.md - "Admin Sys": - divers/admin/index.md - "Installer Adobe pdf reader": divers/admin/acroread-debian.md