При использовании энергии (вместо старого skool vi), можно сделать это:
:set ff=dos
:e!
и Вы сможете отредактировать файлы PHP без всех ужасных суффиксов "^M". Я полагаю, что это сохранит как формат "текстового файла" DOS, также. Это может быть полезно, если Вы совместно используете файлы с (тьфу!) Windows так или иначе.
Немного конъюнктурного высказывания: двухбайтовый маркер конца строки chosed для MS-DOS, должно быть, был одной из самых больших проблем, которые MS-DOS навязал прочь на мире, после сегментов, букв дисков и "\" как разделитель каталога. То, что двухбайтовый маркер является все еще причиной различия между "текстом" и "двоичным файлом". Ickk.
Я действительно не совсем уверен, почему Вы получаете эту ошибку. У меня есть система с 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;
как каталог). Это, очевидно, не существует.