Как выполнить это в sudo?

При использовании энергии (вместо старого skool vi), можно сделать это:

:set ff=dos
:e!

и Вы сможете отредактировать файлы PHP без всех ужасных суффиксов "^M". Я полагаю, что это сохранит как формат "текстового файла" DOS, также. Это может быть полезно, если Вы совместно используете файлы с (тьфу!) Windows так или иначе.

Немного конъюнктурного высказывания: двухбайтовый маркер конца строки chosed для MS-DOS, должно быть, был одной из самых больших проблем, которые MS-DOS навязал прочь на мире, после сегментов, букв дисков и "\" как разделитель каталога. То, что двухбайтовый маркер является все еще причиной различия между "текстом" и "двоичным файлом". Ickk.

4
11.07.2012, 06:43
1 ответ

Я действительно не совсем уверен, почему Вы получаете эту ошибку. У меня есть система с sudo 1.8.3 на нем, и в документации ясно говорится что-то как sudo -s "echo hi" должен работать, но это не делает.

Путем я всегда делал, это должно сделать то же самое -s [command] делает, но вручную.

sudo sh -c 'echo hi'

или в Вашем случае

sudo -u db2inst1 sh -c "/opt/ibm/db2/current/bin/db2 connect to PLC; /opt/ibm/db2/current/bin/db2 \"update EDU.contact set MOBILE_PHONE = '123'\""

Это более совместимо, как -s аргумент не всегда был вокруг (и у меня, к сожалению, есть некоторые действительно старые машины на работе).

Править:
То, что происходит по ошибке, которую Вы получаете, - то, что она ищет исполняемый файл, который буквально называют db2 "update EDU.contact set MOBILE_PHONE = '123'" в названном каталоге /opt/ibm/db2/current/bin/db2 connect to PLC; /opt/ibm/db2/current/bin (да, это ищет db2 connect to PLC; как каталог). Это, очевидно, не существует.

4
27.01.2020, 20:56
  • 1
    я действительно не понимаю Ваше объяснение :-) лучше говорю, что не понимаю, как это могло произойти. Но Ваше решение работает приятно.Спасибо. ре –  Radek 11.07.2012, 08:16

Теги

Похожие вопросы