Ubuntu의 기본값 /bin/sh( dash) 또는 mksh중괄호 확장이 없거나 중괄호 확장 의 경우와 같이 일부 쉘 은 ksh채워진 0을 사용할 수 없습니다.
$ ksh -c 'echo {05..13}'
5 6 7 8 9 10 11 12 13
이러한 경우에, 우리는 사용하실 수 있습니다 printf파일 이름의 숫자 부분을 포맷하고, 루프는 루프 동작에 대한 C-처럼 구현하는 동안 (메모를 대체 할를 사용 echo하여 rm당신이 원하는 또는) :
$ i=5; while [ "$i" -le 10 ]; do num=$(printf "%.2d" "$i" ); echo "file$num.txt";i=$(($i+1)); done
file05.txt
file06.txt
file07.txt
file08.txt
file09.txt
file10.txt
그리고 이것은 매우 휴대용 - 작동 dash, ksh,가 mksh,도 bash. 의 경우 ksh와 bash우리는 또한 사용할 수 있습니다 c-style for loop syntax (but not in case ofmksh or) dash`를 :
$ ksh -c 'for((i=5;i<11;i++)); do num=$(printf "%.2d" "$i" ); echo "file$num.txt";done'
file05.txt
file06.txt
file07.txt
file08.txt
file09.txt
file10.txt
주에 있음을 bash의 경우, printf지원이 변수로 인쇄, 따라서 우리가 할 수있는 printf -v num "%.2d" "$i"대신에 명령 치환을 사용.