pipe e command substitution
This commit is contained in:
parent
8f2c739163
commit
d8ddd416af
@ -0,0 +1,46 @@
|
|||||||
|
## Pipe
|
||||||
|
|
||||||
|
Diversi comandi possono essere concatenati insieme per produrre un output combinato. Il carattere della *pipe* `|` puo' essere utilizzato per creare una pipeline che collega lo *stout* di un programma con lo *stdin* di un altro programma, da sinistra verso destra.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
grep "model name" /proc/cpuinfo | uniq
|
||||||
|
model name : AMD Ryzen 3 3200G with Radeon Vega Graphics
|
||||||
|
```
|
||||||
|
|
||||||
|
## command substitution
|
||||||
|
|
||||||
|
Inserendo un comando all'interno degli ``, bash lo sostituisce col suo *stdout*. Ad esempio:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mkdir `date +%Y-%m-%d`
|
||||||
|
|
||||||
|
ls -lh
|
||||||
|
totale 148K
|
||||||
|
drwxrwxr-x 2 dado dado 4,0K 9 nov 21.00 2024-11-09
|
||||||
|
```
|
||||||
|
|
||||||
|
Un risultato identico si ottiene usando `$()`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mkdir $(date +%Y-%m-%d)
|
||||||
|
|
||||||
|
ls -lh
|
||||||
|
totale 148K
|
||||||
|
drwxrwxr-x 2 dado dado 4,0K 9 nov 21.02 2024-11-09
|
||||||
|
```
|
||||||
|
|
||||||
|
Per memorizzare lo *stdout* di un comando come *variabile*:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Creazione di una variabile
|
||||||
|
OS="uname -a"
|
||||||
|
echo $OS
|
||||||
|
uname -a
|
||||||
|
|
||||||
|
# Assegnazione dello stdout a una variabile
|
||||||
|
OS=`uname -a`
|
||||||
|
echo $OS
|
||||||
|
Linux pc 6.11.6-amd64 Debian 6.11.6-1 (2024-11-04) x86_64 GNU/Linux
|
||||||
|
```
|
||||||
|
|
||||||
|
Un altro metodo per usare lo *stdout* di un programma come argomento di un altro programma e' quello di utilizzare `xargs`.
|
Loading…
x
Reference in New Issue
Block a user