KSH / bash para criação de arquivos dinamicamente

1

Eu tenho um nome de diretório tmp nesse diretório com base na categoria FileName Eu queria criar 'n' número de arquivos dinamicamente.

   if [ ! -d tmp ]
then
    mkdir tmp
fi

TEMPDIR=$HOME/tmp

cd $TEMPDIR

array_FileName_category[0]="File1"
array_FileName_category[1]="File2"
array_FileName_category[2]="File3"
array_FileName_category[3]="File4"
a=0
while [ $a -le 9 ]
do
### Creating Source Files
${array_FileName_category[$a]}_file=$TEMPDIR/${array_FileName_category[$a]}_file_$$
a='expr $a + 1'
done

mas isso não está funcionando e com os seguintes erros:

File Not found with array prefix.
and the other error is for zero index of array ${array_FileName_Category[$a]} is not working

Minha saída desejada é: Se houver FileCategory 'Sports', no diretório tmp usando o loop while, será criado um arquivo com prefixo Sports

    
por Aman 06.04.2015 / 08:03

1 resposta

2

Como o gerenciamento de arrays no shell korn está longe de outras linguagens de programação, você pode tentar algo como: Em vez disso:

while [ $a -le 9 ]
do
${array_FileName_category[$a]}_file=$TEMPDIR/${array_FileName_category[$a]}_file_$$
a='expr $a + 1'
done

tente isto:

while [ $a -le 9 ]
do
b=$array_FileName_category[$a]
touch $TEMPDIR/${b}_file_$$
a='expr $b + 1'
done

P.S. E IMHO para loop será melhor para este fim

    
por 06.04.2015 / 12:08