ksh: синтаксическая ошибка: `(‘ неожиданная при обновлении Websphere application

#bash #websphere #war

#bash #websphere #Война

Вопрос:

Я пытаюсь выполнить команду от имени пользователя Webas для обновления приложения новым файлом WAR. Я получаю ksh: синтаксическая ошибка: `(‘ неожиданно. Команда, которую я пытаюсь выполнить, является :

su — webas -c AdminApp.update(‘productx’, ‘app’, [‘-operation’, ‘update’, ‘-contents’, ‘/apps/deploy/ProductX.war’, ‘-usedefaultbindings’, ‘-nodeployejb’])

Как мне выполнить эту инструкцию без ошибок? и будет ли эта команда обновлять приложение Websphere новым файлом WAR?

Комментарии:

1. AdminApp.update(...) не выглядит как команда оболочки (ksh здесь).

Ответ №1:

Вам необходимо заключить всю команду wsadmin (так, от AdminApp конца) в двойные кавычки ( " ) ksh , чтобы предотвратить попытки интерпретировать команду wsadmin как оператор ksh.

 su - webas -c "AdminApp.update('productx', 'app', ['-operation', 'update', '-contents', '/apps/deploy/productX.war', '-usedefaultbindings', '-nodeployejb'])"
  

Комментарии:

1. все еще получаю ту же ошибку даже после заключения в кавычки.

2. Попробуйте инвертировать кавычки, чтобы одинарные кавычки заключали всю команду целиком, а двойные кавычки использовались в команде wsadmin там, где сейчас находятся одинарные кавычки. Двойные кавычки обычно все еще обрабатываются оболочкой, но я полагаю, что одинарные кавычки скажут ksh взять всю строку дословно и не пытаться ее интерпретировать. su - webas -c 'AdminApp.update("productx", "app", ["-operation", "update", "-contents", "/apps/deploy/productX.war", "-usedefaultbindings", "-nodeployejb"])'

3. Другой альтернативой может быть помещение команды wsadmin без кавычек (поэтому, начиная с AdminApp и до конца этой команды, в файл, а затем укажите файл вместо этого, так su - webas -f update.py . Я предполагаю webas , что передает его параметры в wsadmin.sh таким -f образом, параметр будет действительным.