Dans de nombreux cas, j'utilise la substitution de commandes au lieu de xargs
. Par exemple, rm $(ls)
c'est la même chose quels | xargs rm
Quelles sont vraiment les différences entre eux?
Je pense que l'une des différences est que la substitution de commandes s'exécute en sous-shell tout en xargs
s'exécute dans le shell actuel, mais je ne suis pas sûr.
Veuillez énumérer les différences.
xargs
s'exécute également dans un sous-shell en raison du canal, sauf si vous l'activezshopt -s lastpipe
, auquel cas il s'exécutera dans le shell actuel. Je ne pense pas que l'exécution en sous-shell soit un problème dans ce cas, car vous ne modifiez aucune variable.