In bash
, utilizzare il reindirizzamento <<<
da una stringa (una 'Here string'):
if grep -q abc_def_APP <<< $file
In altre shell, potrebbe essere necessario utilizzare:
if echo $file | grep -q abc_def_APP
Ho messo il mio then
sulla riga successiva; se vuoi il tuo then
sulla stessa linea, quindi aggiungi ; then
dopo quello che ho scritto.
Si noti che questa assegnazione:
file=$abc_def_APP_13.4.5.2
è piuttosto strano; prende il valore di una variabile di ambiente ${abc_def_APP_13}
e aggiunge .4.5.2
alla fine (deve essere un env var dato che possiamo vedere l'inizio dello script). Probabilmente desidera scrivere:
file=abc_def_APP_13.4.5.2
In generale, si dovrebbe racchiudere i riferimenti alle variabili che tengono i nomi di file tra virgolette per evitare problemi con gli spazi ecc nei nomi dei file. Non è fondamentale qui, ma le buone pratiche sono buone pratiche:
if grep -q abc_def_APP <<< "$file"
if echo "$file" | grep -q abc_def_APP
fonte
2013-05-09 18:10:54
Perché il #! linea dire ksh? – jman
Qual è il valore di 'file' dovrebbe essere? Sospetto che potresti avere un problema sul RHS di questo incarico. – chepner