2011-07-07 3 views
0

私はファイルのディレクトリを持っており、その結果を出力してファイルに保存します。 このbashコマンドの結果をファイルに送ると無限ループになります

echo "["; 
for i in ./*; do 
    [[ -f $i ]] && cat $i; 
    echo ","; 
done; 
echo "]" 
をしかし、私がしなければ:私は次の操作を行う場合、私はSTDOUTにダンプすることができます

echo "[" < myfile.txt; 
for i in ./*; do 
    [[ -f $i ]] && cat $i << myfile.txt; 
    echo "," << myfile.txt; 
done; 
echo "]" << myfile.txt 

私は無限ループで立ち往生。何か案は?

+2

'<'と '<<'の代わりに '>'と '>>'を使うのですか? – Flimzy

答えて

3

問題は、.にファイルを作成してから、を同時に読み込むことです。 myfile.txtを、処理しているディレクトリとは別のディレクトリに保存する必要があります。

また、私は何をやっているの短い形式として、このアプローチをお勧め:

その後、いくつかの時点 $imyfile.txtを等しくなり、そしてあなたがしようとするとよ、あなたは >>を使用していると仮定すると、
{ echo "["; 
for i in ./*; do 
    [[ -f $i ]] && cat $i; 
    echo ","; 
done; 
echo "]" 
} > ../myfile.txt 
2

をそれをそれ自身に追加してください...

関連する問題