KSH / bash для создания файлов динамически

Я новичок в ksh и unix, и я учу его: мне нужно следующее: у меня есть имя каталога tmp в этом каталоге на основе FileName Category. Я хотел бы динамически создавать «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

  • awk для цикла для каждой строки в файле
  • Как добавить скрипт к встроенной Linux
  • Что делает выход в блоке if в сценарии оболочки?
  • find -exec не работает в скрипте bash, но работает в терминале
  • Как Linux работает со сценариями оболочки?
  • Bash: сортировка элементов массива по дате файла
  • скрипты bash преобразуют прописные буквы в нижний регистр и наоборот
  • Выполнение команд сразу
  • One Solution collect form web for “KSH / bash для создания файлов динамически”

    Поскольку управление массивами в оболочке 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 И ИМХО для цикла будет лучше для этой цели

    Linux и Unix - лучшая ОС в мире.