come indicato in precedenza, l'impostazione delle variabili di bash non consente spazi bianchi tra il nome della variabile sul LHS e il valore della variabile sul RHS, del segno '='.
awk può fare tutto ed evitare il reparto "awk" extra 'grep'. L'uso di awk's printf è di non aggiungere un inutile "\ n" nella stringa che darebbe connotazioni di programmi perl-ish matcher. Il/espansione di parametro variabile per il vostro caso in bash non ha questo problema, così uno di questi lavori:
variable=$(ps -ef | awk '/port 10 \-/ {print $12}')
variable=`ps -ef | awk '/port 10 \-/ {print $12}'`
Il '-' int il modello awk record corrispondente elimina la necessità di rimuovere awk sé dalla ricerca risultati.
quindi qual è il tuo output quando hai eseguito questo script di shell? – wens
Il problema non è chiaro. Qual è l'errore che ottieni? Qual è la linea da 'ps -ef' e cosa ti aspetti in $ variabile? (se non è possibile fornire dati reali, generare un esempio sterilizzato che mostri invece il problema). – NiKiZe
Problema: la variabile non viene visualizzata nell'istruzione printf. End goal: $ 12 corrisponde a un numero seriale in esecuzione con tale processo. Voglio salvare quel parametro in una variabile in modo che possa lavorare con esso. – Jeremy