2017-05-17 3 views
1

だから、変数の数に応じてx個のディレクトリを作成したいと思います。私の現在のテスト環境でforループでbashにディレクトリを作成する

#!/bin/bash 
countOfCaptureFiles=$(wc -l < allCaptures.txt) 
echo $countOfCaptureFiles 

start=1 
end=countOfCaptureFiles 
for((i=$start;i<=$end;i++)) 
do 
mkdir "SnortAlert${i}" 
done 

countOfCaptureFilesの値が3であるので、私はSnortAlert1 SnortAlert2 SnortAlert3という名前の3つのディレクトリを作成するために期待していました。

私はそうのようなスクリプトを実行します。countOfCaptureFiles =私はこれを行うとき、しかし、私はエラーなし出力を取得し、私はそれがassinging終わりとは何かを持っていると信じて./myscript.sh

が、私はどのように確認していませんこれを修正するには、どんな助けもありがとう!

+0

のようなコードを簡素化する文で使用することができます。それは '= $ countOfCaptureFiles'を終了してください。 – codeforester

+0

私のMac上であなたのコードをテストしました。問題はありません。$ <= $ endはi <= countOfCaptureFilesと評価され、i <= 3に評価されています。 .sh '? – thatseeyou

+0

'001、002、003、...'のように固定幅の最後に付加するすべての整数を作ることで、ソートの観点から恩恵を受けるかもしれません。 'printf -v name" SnortAlert%03d "" $ i "'、そして 'mkdir" $ name "' –

答えて

2

コードが機能しています。しかし、以下のような外部プログラム(wc、catなど)を使用することを最小限に抑えることができます。

#!/bin/bash 
i=1 
while read line;do 
    mkdir "SnortAlert${i}" 
    let i=i+1 
done <allCaptures.txt 
0

あなたは `エンド=`割り当てに `$`を欠けているこの」

#!/bin/bash 
var=$(cat allCaptures.txt) 
for line in $var 
do 
    mkdir "SnowAlert${line}" 
done 
関連する問題