2017-12-27 12 views
0

プロシージャのスクリプトを作成しようとしていますが、今は本当に立ち往生しています。フォルダでシェル、名前に数字のファイルが表示されないようにする

、私は、いくつかのファイルを持っているとしましょう:変数で

000001.dat 
000002.dat 
000003.dat 
000004.dat 
000005.dat 
000006.dat 
000007.dat 
000008.dat 
000009.dat 
000010.dat 

を、私は>000009echo $numを持っています。私がやりたい何 のような中間ファイル抑制することである: rm -f {000001..${num}}*を、それは私がrm -f {000001..000009}*を使用している場合は、それが動作

...動作しません!ですから、num変数を読むと問題になると思います。

助けてください? :) ありがとうございます! evalのを使用して

答えて

0

一つの方法:

$ x=1;y=9 
$ echo {$x..$y} 
{1..9} 
$ eval echo {$x..$y} 
1 2 3 4 5 6 7 8 9 
+0

おかげで、それがうまく機能:) '' 'RM' evalのエコー{$ X .. $ yを} '' '' – zackalucard

+0

ラッキー、それはあなたのために働いていた場合。中括弧の展開における先行ゼロの扱いは、シェルによって異なるようです。 'x = 000001; y = 000009; eval echo {$ x .. $ y} 'bashでは' 1 2 3 4 5 6 7 8 9'が得られ、kshは2つ以上の先行0が使用されている場合は展開しません。 kshでは 'echo {1..9%06d} .dat'を使うことができます – ULick

関連する問題