lpic/101/017_pipe.md
2024-11-28 21:19:47 +01:00

1.1 KiB

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.

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:

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 $():

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:

# 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.