Синтаксическая ошибка возле неожиданного токена `('
Я пытаюсь выполнить
sudo -su db2inst1 /opt/ibm/db2/V9.7/bin/db2 force application (1995)
но я получаю эту ошибку bash: syntax error near unexpected token
('`
sudo -su db2inst1 id
дает правильный результат. Так что это должно быть что-то о()
ОБНОВЛЕНИЕ I
Если я попробую
sudo -su db2inst1 /opt/ibm/db2/V9.7/bin/db2 force application \(1995\)
Я получаю
/bin/bash: -c: line 0: syntax error near unexpected token `('
/bin/bash: -c: line 0: `/opt/ibm/db2/V9.7/bin/db2 force application (1995)'
ОБНОВЛЕНИЕ II
running /opt/ibm/db2/V9.7/bin/db2 force application (1995)
, поскольку пользователь db2inst1 дает мне ту же ошибку, но работает
/opt/ibm/db2/V9.7/bin/db2 "force application (1995)"
отлично работает
ОБНОВЛЕНИЕ III
правильный синтаксис
sudo -su db2inst1 '/opt/ibm/db2/V9.7/bin/db2 "force application (1995)"'
Ответы
Ответ 1
Поскольку у вас есть как оболочка, которую вы вводите, так и оболочка, в которой работает sudo -s
, вам нужно дважды указывать или выходить. (EDITED фиксированное цитирование)
sudo -su db2inst1 '/opt/ibm/db2/V9.7/bin/db2 force application \(1995\)'
или
sudo -su db2inst1 /opt/ibm/db2/V9.7/bin/db2 force application \\\(1995\\\)
Из любопытства, зачем вам нужно? Не могли бы вы просто сделать это:
sudo -u db2inst1 /opt/ibm/db2/V9.7/bin/db2 force application \(1995\)
Ответ 2
Try
sudo -su db2inst1 /opt/ibm/db2/V9.7/bin/db2 force application \(1995\)