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