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 xargss'exécute dans le shell actuel, mais je ne suis pas sûr.
Veuillez énumérer les différences.
xargss'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.