È possibile sovrascrivere una funzione di shell e mantenere un riferimento a quello originale?Sovrascrivere una funzione di shell, mantenere un riferimento a quello originale
f() { echo original; }
f() { echo wrapper; ...; }
f
L'output di questo dovrebbe essere:
wrapper
original
Questo è possibile in modo semi-portatile?
Razionale: sto provando a testare il mio programma sostituendo parti di esso con funzioni di shell che registrano le loro chiamate in un file di registro. Funziona bene finché ho solo comandi e comandi incorporati, e finché non mi interessa il logging indiscriminato. Ora mi piacerebbe rendere la suite di test più manutenibile registrando solo il pezzo interessante in ciascun test.
Quindi diciamo che il mio programma è costituito da
f
g
h
dove f
, g
, h
sono tutte le funzioni di shell, e mi piacerebbe rintracciare l'esecuzione di appena g
.
ciò che si vuole si può fare, ma non molto portabile. –