Come tagliare gli spazi bianchi da una variabile Bash?
Ho uno script di shell con questo codice:
var=`hg st -R "$path"`
if [ -n "$var" ]; then
echo $var
fi
Ma il codice condizionale viene sempre eseguito, perché hg st
stampa sempre almeno un carattere newline.
- C'è un modo semplice per togliere gli spazi bianchi da
$var
(cometrim()
in PHP)?
o
- C'è un modo standard per affrontare questo problema?
Potrei usare sed o AWK, ma mi piacerebbe pensare che ci sia una soluzione più elegante a questo problema.
847
3
Bash ha una caratteristica chiamata parameter expansion, che, tra le altre cose, permette la sostituzione delle stringhe basata sui cosiddetti patterns (i pattern assomigliano alle espressioni regolari, ma ci sono differenze e limitazioni fondamentali). [La linea originale di flussence: Bash ha le espressioni regolari, ma sono ben nascoste:]
Quanto segue dimostra come rimuovere tutti gli spazi bianchi (anche dall'interno) da un valore variabile.
L'ho sempre fatto con sed
Se c'è una soluzione più elegante, spero che qualcuno la pubblichi.
Puoi cancellare le newlines con
tr
: