BASHの問題:2つの変数を追加して、200001.txt、200002.txtなどに似たファイルを生成します。

BASHの問題:2つの変数を追加して、200001.txt、200002.txtなどに似たファイルを生成します。

作成年の最初の部分を取得しましたが、月を取得して増やすと困惑します。

#!/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

前にゼロを付けたシェル拡張を使用すると、必要に応じて適しています。

#/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

関連情報