Я просто вступаю в мир PASE и Qshell на IBM i, и я все еще изучаю «оболочный путь» решения проблем.Как определить отношения базы данных с PASE/Qshell?
Я пытаюсь написать сценарий оболочки, который удалит все логические файлы в данной библиотеке, которые связаны с данным физическим файлом. ОС - IBM i 7.2. В QSYS-land я бы, вероятно, DSPDBR
в физическом файле в outfile, затем прочитал outfile и удалил каждый зависимый файл. Как вы это сделаете на PASE или Qshell? У меня было несколько идей, но все они кажутся слишком сложными, и чем больше я узнаю о сценариях оболочки, тем больше ярлыков я нахожу.
Моя первая идея состояла в том, чтобы в основном повторить описанный выше процесс, делая что-то вроде этого, а затем каким-то образом, используя выход SELECT:
system "DSPDBR FILE(MYLIB/MYFILE) OUTPUT(*OUTFILE) OUTFILE(QTEMP/DSPDBR)"
db2 "select WHREFI from QTEMP/DSPDBR where WHRELI = 'MYLIB'"
(теперь я вижу, что QTEMP действительно не работает в качестве временного библиотека, но, возможно, есть способ обойти это.)
Моя вторая идея заключалась в том, чтобы сделать что-то вроде вывода вывода инструкции DSPDBR в нечто вроде awk, чтобы выбрать логические имена файлов и перенаправить вывод этого на файл потока (или переменная оболочки?). И оттуда, как-то использовать этот список для удаления логических файлов.
Есть ли более простой подход? Кажется, что бы ни был ответ, это будет шаблон, который часто повторяется при написании сценариев оболочки для взаимодействия с командами и объектами QSYS.
QSYS2.SYSVIEWDEP по-видимому не содержит мои тестовые PF и LF. Может быть, LF считаются индексами и поэтому не включены в SYSVIEWDEP? – smeep
Я думаю, что я больше ищу, это общий шаблон, который люди используют при написании сценариев оболочки на i, которые должны взаимодействовать с командами/программами QSYS.В моем сценарии LF выше, мне интересно, какой правильный способ получить список LF для данного PF. Должен ли сценарий вызвать программу, которую я пишу в QSYS, чтобы получить список? Должен ли он разбирать выходные данные команды DSPDBR? Должен ли он работать с выходным файлом, созданным DSPDBR? При попытке манипулировать объектами QSYS и получать метаданные о них изнутри оболочки, какие общие шаблоны используют люди? – smeep
@smeep Можете ли вы изменить свой вопрос, чтобы прояснить эти последние бит? (Комментарии могут быть временными.) Вас больше интересует PASE? QShell относительно хорошо интегрирован с ОС, в то время как PASE может потребовать более специфического программирования для репликации или доступа к функциям IBM i в течение времени выполнения AIX. – user2338816