![BASH 문제: 변수 2개를 추가하여 200001.txt, 200002.txt 등과 유사한 파일을 생성합니다.](https://linux55.com/image/186301/BASH%20%EB%AC%B8%EC%A0%9C%3A%20%EB%B3%80%EC%88%98%202%EA%B0%9C%EB%A5%BC%20%EC%B6%94%EA%B0%80%ED%95%98%EC%97%AC%20200001.txt%2C%20200002.txt%20%EB%93%B1%EA%B3%BC%20%EC%9C%A0%EC%82%AC%ED%95%9C%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%83%9D%EC%84%B1%ED%95%A9%EB%8B%88%EB%8B%A4..png)
생성 연도의 첫 번째 부분을 얻었지만 월을 얻고 이를 증가시키면 당황스럽습니다.
#!/bin/bash
varRan=$(( $RANDOM ))
newdir="testing_"$varRan
#echo $newdir
mkdir $newdir
cd ~/$newdir
for ((i = 2000; i<= 2022 ; i++; )); do
for ((m = 1; m<= 12 ; m++; )) do
touch $i$m".txt"
done
# touch $i$m".txt"
done
답변1
앞에 0을 붙인 셸 확장을 사용하면 필요에 따라 적합할 수 있습니다.
#/bin/bash
newdir="testing_$RANDOM"
mkdir "${newdir}"; cd "${newdir}"
for y in {2000..2022}; do
for m in {01..12}; do
touch "prefix_$y$m.txt"
done
done
답변2
사용자 정의 형식을 사용하여 date
셸에서 날짜를 생성 할 수 있습니다.
$ date +%Y-%m-%d -d "2002-03-28 +1 days"
2002-03-29
$ date +%Y-%m-%d -d "2002-03-28 +1 months"
2002-04-28
$ date +%Y-%m-%d -d "2002-03-28 +1 years"
2003-03-28