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

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 И ИМХО для цикла будет лучше для этой цели

  • Простой, но правильный способ иметь сценарий bash отправлять вывод в журнал systemd?
  • перенаправить вывод команды в переменную (скрипт bash)
  • Как я могу получить bash, чтобы выйти с ошибкой backtick, аналогично отказу?
  • bash - флаги разбора и ожидаемый (необязательный) аргумент
  • Как использовать замещение процесса внутри case-case без получения синтаксических ошибок?
  • Добавление 2 строк в строфу текстового файла
  • Можем ли мы установить пакет через сценарий оболочки?
  • Запись на экран в Shell Script
  • Diff, показать измененную строку только из правого файла
  • Запустить фоновый процесс из sh и закрыть терминал
  • xargs - добавить каждый аргумент с параметром
  • Сломанная труба в моем rsync.sh
  • Linux и Unix - лучшая ОС в мире.