#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
образом, параметр будет действительным.