# show expansion echo {1..10} printf '%d\n' {1..10} ./args {1..10} # show it fail echo {1..1000000} echo {1..1000000} > /dev/null type -a echo /bin/echo {1..1000000} > /dev/null # get the limit getconf ARG_MAX # show 1 argument fails echo {1..1000000} s=$(echo {1..1000000}) /bin/echo "$s" # explain preferring builtins - loops are ok with this # bonus: xargs printf '%d\n' {1..1000000} | xargs /bin/echo printf '%d\n' {1..1000000} | xargs ./args # explain xargs and GNU stuff