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 of
mksh 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"
대신에 명령 치환을 사용.