ループにbashコマンドラインで増分変数を使用しますか?

ループにbashコマンドラインで増分変数を使用しますか?

私はループ用のbashコマンドラインを使用してファイルセットを一緒にリンクし、増分数を追加したいと思います。

このような:

j=1;for i in *.bak; do echo {$j++: >> files.grp;cat $i >> files.grp; echo }, >> files.grp; done

したがって、出力は次のようになります。

{1:"file1 contents"},{2:"file2 contents"},

答え1

あなたがしなければならないことは:

j=$(($j+1))

または使用

$((j++))

答え2

# file1.bak
hallo

# some other file.bak
H?llo*

# a!file.bak
new!
line"

スクリプトで処理:

j=1
for i in *.bak; do
  echo "{$((j++)):$(cat "$i")}" >> files.grp
done

files.grpに次の内容を作成します。

{1:hallo}
{2:H?llo*}
{3:new!
line"}

関連情報