Nella mia shell di script una funzione che stampa un messaggio sulla console. Può essere chiamato da qualsiasi altra funzione.Come echo direttamente sullo standard output all'interno di una funzione shell?
function print_message
{
echo "message content"
}
Il problema è, in guscio, funzioni come echo
o printf
che di solito stampano i dati sullo standard output reindirizzare i loro messaggi alla funzione di chiamata invece come valore di ritorno.
return_value=$(print_message) # this line print nothing.
echo $return_value # this line print the message. I don't want to have to do it.
Vorrei evitare questo comportamento e stamparlo direttamente su standard - o errore - output. C'è modo di farlo ?
O sono solo sbagliato a voler utilizzare le funzioni in shell e dovrei usare invece un copione enorme per gestire qualsiasi comportamento?
si desidera che l'output di 'print_message' per andare errore standard? Sempre? Reindirizzare la funzione quindi "echo" contenuto del messaggio "> & 2'. –
@EtanReisner - Sembra che lo vogliano sugli errori standard out * e * standard. STDOUT quindi è catturato da '$ (...)' e STDERR quindi viene mostrato sullo schermo. –
@EtanReisner Che funziona per errore standard, ma esiste un modo per stamparlo sullo standard output? '> & 1' non sembra funzionare. – Aracthor