add read and heredoc

This commit is contained in:
makayabou 2020-11-21 02:35:09 +01:00
parent 5a1a3539a2
commit 5f0198a200
7 changed files with 100 additions and 6 deletions

View File

@ -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 <<EOF
premiere ligne
deuxième ligne
EOF
)
visiteur@domani:~$ echo "$MA_VARIABLE"
premiere ligne
deuxième ligne
```
#### Utilisation pour écrire dans un fichier
```
visiteur@domani:~$ cat <<EOF1 > file.txt
premiere ligne
deuxième ligne
EOF1
```

View File

@ -4,3 +4,5 @@
- [rsync](backup.md) - [rsync](backup.md)
- [nmcli](nmcli.md) - [nmcli](nmcli.md)
- [Monter une partition](mount.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

50
docs/divers/cmd/read.md Normal file
View File

@ -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
```

View File

@ -21,3 +21,5 @@
screen -r nom-de-la-session screen -r nom-de-la-session
**See https://linuxize.com/post/how-to-use-linux-screen/** **See https://linuxize.com/post/how-to-use-linux-screen/**
** Pour splitter l'écran: https://tomlee.co/2011/10/gnu-screen-splitting/**

View File

@ -36,12 +36,12 @@ cd my-website
#### Download the last version #### Download the last version
``` ```
curl -s https://api.github.com/repos/gohugoio/hugo/releases/latest \ curl -s https://api.github.com/repos/gohugoio/hugo/releases/latest \
| grep browser_download_url \ | grep browser_download_url \
| grep Linux-64bit.deb \ | grep Linux-64bit.deb \
| grep -v extended \ | grep -v extended \
| cut -d '"' -f 4 \ | cut -d '"' -f 4 \
| wget -i | wget -i -
``` ```
#### Install it #### Install it

View File

@ -0,0 +1,7 @@
{
"folders": [
{
"path": "."
}
]
}

View File

@ -76,6 +76,8 @@ nav:
- divers/cmd/screen.md - divers/cmd/screen.md
- divers/cmd/nmcli.md - divers/cmd/nmcli.md
- divers/cmd/mount.md - divers/cmd/mount.md
- divers/cmd/read.md
- divers/cmd/heredoc.md
- "Admin Sys": - "Admin Sys":
- divers/admin/index.md - divers/admin/index.md
- "Installer Adobe pdf reader": divers/admin/acroread-debian.md - "Installer Adobe pdf reader": divers/admin/acroread-debian.md