Я бы генерировал команды с помощью awk
, а затем передал бы их в bash
:
find /data/DIV5/SASC/e042_ctcl/input/*/Clean_data/*/*/*.fq.gz -type f | \
awk '{printf "mkdir -p `dirname %s`\nln -s %s ./%s \n", substr($0, 27), $0, substr($0, 27)}'
Это генерирует список команд, я бы сначала контролировал их, а затем передал бы их в bash
. Полная команда будет:
find /data/DIV5/SASC/e042_ctcl/input/*/Clean_data/*/*/*.fq.gz -type f | \
awk '{printf "mkdir -p `dirname %s`\nln -s %s ./%s \n", substr($0, 27), $0, substr($0, 27)}' | bash
массивы не являются переменными окружающей среды, и поэтому нет (и не могут быть )
Унаследовано процессы детей (например, сценарии) от родителей.
Вы должны «создавать [ваш массив] с нуля каждый раз, когда вы запускаете свой скрипт».
Я не понимаю, почему вы рассматриваете это как трудности.
Если значения постоянны, как вы говорите, то все, что должно произойти
Для этих ценностей для чтения в память из скрипта.
Если ваша забота заключается в том, что код для инициализации массива подвездит ваш скрипт,
Поместите его в отдельный файл сценария и назовите его с помощью «.
«Или» источник
».
Я не знаю, где вы поняли, что «единственный здравый способ поставить [SIC] переменную
(Даже массив) - это ~ / .profile
. "