In molti casi utilizzo la sostituzione dei comandi anziché xargs
. Ad esempio rm $(ls)
è lo stessols | xargs rm
Quali sono veramente le differenze tra loro?
Penso che una delle differenze sia che la sostituzione dei comandi viene eseguita in subshell mentre xargs
viene eseguita nella shell corrente ma non ne sono sicuro.
Si prega di elencare le differenze.
xargs
funziona anche in una subshell a causa della pipe, a meno che tu non lo abilitishopt -s lastpipe
, nel qual caso verrà eseguita nella shell corrente. Non penso che l'esecuzione in una subshell sia un problema, in questo caso, poiché non si modificano variabili.