9

Linuxでbashシェルコマンドとスクリプトを使用する方法を学び始めています。

ソース ファイルを取得し、選択した数の名前付きコピーを作成するスクリプトを作成したいと考えています。

たとえば、ソースが testFile で、15 個のコピーを選択すると、同じ場所に testFile1、2、3 ... 14、15 が作成されます。

これを達成するために、次のコマンドを作成しようとしました。

for LABEL in {$X..$Y}; do cp $INPUT $INPUT$LABEL; done

ただし、X から Y までのファイルを作成する代わりに、ファイル 1、2、3、4、および 5 の代わりに (たとえば) {1..5} を追加した 1 つのファイルのみを作成します。

変数をループの数値として適切に使用するように変更するにはどうすればよいですか?

4

2 に答える 2

6

ブレース拡張メカニズムは少し制限されています。変数では機能せず、リテラルのみで機能します。

あなたが望むもののために、おそらくseqコマンドがあり、次のように書くことができます:

INPUT=testFile
for num in $(seq 1 15)
do
    cp "$INPUT" "$INPUT$num"
done
于 2013-10-25T19:44:38.630 に答える