В настоящее время я использую следующую строку, чтобы найти несколько скриптов и выполнить их. Сценарии названы: my_script_0.sh, my_script_1.sh и т.д.linux find exec positional параметр
find $MY_HOME/SHELL/my_script_[0-9].sh -type f -exec csh -c '"$1" >& "$logfile" &' {} \;
Это работает отлично, за исключением, что теперь я хотел бы создать уникальный $logfile
для каждого из исполняемых скриптов. Я понимаю, что с помощью awk я мог бы сделать что-то подобное, чтобы захватить номер файла, а затем потенциально использовать его в имени файла журнала.
find $MY_HOME/SHELL/my_script_[0-9].sh -type f | awk -F"\\.|_" '{print $4}'
Вопрос заключается в том, что я не верю, что я могу использовать AWK с первоначальным утверждением, так как мне нужно позиционное параметр, чтобы быть полный путь/имя файла.
В идеале я хотел бы просто использовать другой позиционный параметр с помощью команды find -exec. Он существует?
Оказывается, что CSH не имеет для цикла? – McArthey
@McArthey Хорошо, этот ответ работает в (ba) sh, запуская csh в подоболочке. Сожалею. –
Отлично, спасибо! Похоже, что просто используя 'foreach script ($ MY_HOME/SHELL/my_script_ [0-9] .sh)' позаботится об этом. – McArthey