Похоже, что проблема, которую вы пытаетесь решить, состоит в том, чтобы запустить некоторые скриптовые команды Domo через CLI Domo.
Способ сделать это - поместить команды, которые вы хотите запустить, в файл скрипта. , затем используйте параметр -script
для его запуска.
Например, поместите следующее в файл с именем /path/to/myscript.domo
.
connect -s yourdomain.domo.com -t mytokenhere
query-data -i datasetid -sql "SELECT * FROM `hs_users_raw`" -xf test3.csv
Затем используйте domoUtil.jar
для запуска сценария следующим образом:
java -jar domoUtil.jar -script /path/to/myscript.domo
Это объясняется в документации для инструмента CLI.
Причина, по которой ваш текущий подход не работает, заключается в том, что &&
не делает то, что вы хотите. Фактически.
A && B && C
говорит оболочке сделать следующее:
- запустить команду оболочки A
- , если A возвращает нулевой код возврата, запустить команду оболочки B
- если B возвращает нулевой код возврата, запустите команду оболочки C
Это не работает для вас, потому что connect
и query-data
не являются командами оболочки. Скорее, это команды для запуска CLI. Кроме того, вы не хотите ждать, пока CLI вернет код возврата (т. Е. Завершен), прежде чем отправлять ему команды connect и query-data.
Domo CLI (вероятно) ожидает чтения команд со своего стандартного ввода. Следовательно, следующие могут работать в качестве альтернативы (с использованием оболочки Linux):
java -jar domoUtil.jar <<EOF
connect -s yourdomain.domo.com -t mytokenhere
query-data -i datasetid -sql "SELECT * FROM `hs_users_raw`" -xf test3.csv
EOF
Возможно, есть эквивалент использования Windows языка пакетных сценариев.
В любом случае, подход -script
- это то, что рекомендует руководство Domo.