add read and heredoc
This commit is contained in:
parent
5a1a3539a2
commit
5f0198a200
31
docs/divers/cmd/heredoc.md
Normal file
31
docs/divers/cmd/heredoc.md
Normal 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
|
||||||
|
```
|
||||||
@ -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
50
docs/divers/cmd/read.md
Normal 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
|
||||||
|
```
|
||||||
|
|
||||||
@ -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/**
|
||||||
@ -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
|
||||||
|
|||||||
7
gndoc-workspace.code-workspace
Normal file
7
gndoc-workspace.code-workspace
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"folders": [
|
||||||
|
{
|
||||||
|
"path": "."
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@ -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
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user