printf '%s, ' `seq 1 10 | shuf`
for
루프 가 필요하지 않습니다 .
산출
7, 3, 4, 10, 2, 9, 1, 8, 5, 6,
쉘 배열로 가져 오려면 다음을 수행하십시오.
( set -- $(seq 1 10 | shuf) ; printf '%s, ' "$@" )
산출
5, 9, 7, 2, 4, 3, 6, 1, 10, 8,
그리고 그들은 당신의 쉘 배열에 있습니다.
쉘 배열로 가져 오면 필요하지 않습니다 printf
.
( set -- $(seq 1 10 | shuf); IFS=, ; echo "$*" )
산출
9,4,10,3,1,2,7,5,6,8
그런데, seq
그리고 printf
좀 서로를 위해 만들어집니다. 예를 들어 문자열을 1000 번 반복하려면?
printf 'a string\n%.0b' `seq 1 1000`
산출
a string
... 999 a string
줄 후에 ...
a string
또는...
printf 'a string,%.0b' `seq 1 10`
산출
a string,a string,a string,a string,a string,a string,a string,a string,a string,a string,
명령을 39 번 실행하고 싶습니까?
printf 'echo "run %d"\n' `seq 1 39` | . /dev/stdin
산출
run 1
... 38 run
줄 후 ...
run 39
echo $(seq 10 | shuf)
가까이 오지만 쉼표를 사용하지 않습니다.