そのディレクトリにtmpディレクトリ名があり、ファイル名カテゴリに基づいて 'n'個のファイルを動的に生成しようとしています。
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
しかし、これはうまくいかず、次のエラーが発生します。
File Not found with array prefix.
and the other error is for zero index of array ${array_FileName_Category[$a]} is not working
私が望む出力は次のとおりです。 FileCategory "Sports"が存在する場合、tmpディレクトリでwhileループを使用すると、プレフィックスがSportsのファイルが生成されます。
答え1
korn シェルの配列管理は、他のプログラミング言語から離れているので、次のことを試すことができます。代わりに:
while [ $a -le 9 ]
do
${array_FileName_category[$a]}_file=$TEMPDIR/${array_FileName_category[$a]}_file_$$
a=`expr $a + 1`
done
この試み:
while [ $a -le 9 ]
do
b=$array_FileName_category[$a]
touch $TEMPDIR/${b}_file_$$
a=`expr $b + 1`
done
この目的のために、PSとIMHO forループがより良いです。