(понятно будет только программистам)
Убил 20 минут на поистине идиотскую проблему; почему-то скрипт на перле не запускался напрямую "./xxx.pl", хотя "perl xxx.pl" работало отлично. Оказалось, что строчка shellbang
#!/usr/bin/perl
не работала, потому что она была не
#!/usr/bin/perl\n
а
#!/usr/bin/perl\r\n
(видимо, кто-то редактировал скрипт на Windows-системе в какой-то момент...)
Я ненавижу компьютеры.
Убил 20 минут на поистине идиотскую проблему; почему-то скрипт на перле не запускался напрямую "./xxx.pl", хотя "perl xxx.pl" работало отлично. Оказалось, что строчка shellbang
#!/usr/bin/perl
не работала, потому что она была не
#!/usr/bin/perl\n
а
#!/usr/bin/perl\r\n
(видимо, кто-то редактировал скрипт на Windows-системе в какой-то момент...)
Я ненавижу компьютеры.
no subject
Date: 2005-07-31 08:39 am (UTC)no subject
Date: 2005-07-31 08:43 am (UTC)no subject
no subject
Date: 2005-07-31 08:48 am (UTC)no subject
Date: 2005-07-31 08:51 am (UTC)no subject
Date: 2005-07-31 08:55 am (UTC)no subject
Date: 2005-07-31 09:12 am (UTC)#!/usr/bin/perl -wOnce perl gets to your script, it's tolerant about lineendings, even in the shebang line.
This also turns on warnings non-lexically, which may not be what you want. In that case, use this:
#!/usr/bin/perl --no subject
Date: 2005-07-31 09:13 am (UTC)no subject
Date: 2005-07-31 11:07 am (UTC)присоединяйся тогда ;)
no subject
Date: 2005-07-31 11:24 am (UTC)best of!
no subject
Date: 2005-07-31 11:39 am (UTC)no subject
Date: 2005-07-31 12:32 pm (UTC)И уравнять в правах \n и \r\n
if ((cp = strchr(bprm->buf, '\n')) == NULL)
cp = bprm->buf+BINPRM_BUF_SIZE-1;
Хотя как-то это идеологически неверно
no subject
Date: 2005-07-31 12:37 pm (UTC)no subject
Date: 2005-07-31 12:50 pm (UTC)хотя, наверное, это так бросается в глаза только если знаешь про данные конкретные грабли.
no subject
Date: 2005-07-31 01:24 pm (UTC)no subject
Date: 2005-07-31 01:28 pm (UTC)no subject
Date: 2005-07-31 01:29 pm (UTC)no subject
Date: 2005-07-31 01:50 pm (UTC)(хотя пуристы наверное не позволят, да)
no subject
Date: 2005-07-31 01:51 pm (UTC)no subject
Date: 2005-07-31 02:01 pm (UTC)В нашем случае частотность вполне может служить критерием правильности. "shebang" в гугле попадается на 425,000 страницах, а "shellbang" - на 1,150. Тут уже разница в 369 раз.
no subject
Date: 2005-07-31 02:10 pm (UTC)no subject
Date: 2005-07-31 02:17 pm (UTC)Админ под линуксом редактировал скрипт, выполняющийся на пользовательской машине при регистрации. Первой, как обычно, прибежала бухгалтерия. :)
no subject
Date: 2005-07-31 03:54 pm (UTC)no subject
Date: 2005-07-31 04:21 pm (UTC)no subject
Date: 2005-07-31 04:48 pm (UTC)no subject
Date: 2005-07-31 06:43 pm (UTC)no subject
Date: 2005-07-31 08:00 pm (UTC)no subject
Date: 2005-07-31 08:03 pm (UTC)no subject
Date: 2005-07-31 08:29 pm (UTC)у нас с 1998 года из-под unix нельзя закоммитить текстовый файл с \r-ами
no subject
Date: 2005-08-01 07:22 am (UTC)no subject
Date: 2005-08-01 07:24 am (UTC)no subject
Date: 2005-08-01 08:02 am (UTC)Кстати, для FreeBSD есть хинт: написать #!/usr/bin/perl#. Он последний # обрабатывает так же, как и \n. А вот в Linux это не работает.
no subject
Date: 2005-08-01 08:03 am (UTC)Re: В лучшем случае
Date: 2005-08-01 08:54 am (UTC)Re: Не лечится
Date: 2005-08-01 08:55 am (UTC)Править ядро - это круто
Date: 2005-08-01 08:56 am (UTC)http://www.livejournal.com/users/avva/1416370.html?thread=27453106#t27453106
гораздо проще имхо
no subject
Date: 2005-08-01 12:48 pm (UTC)Редакторов под win32 море. Нужны какие-то особенные функции vim или просто консольный редактор?
no subject
Date: 2005-08-01 12:49 pm (UTC)A: Ах ты маленький извращенец, переходи на vi!
:)
no subject
Date: 2005-08-01 06:10 pm (UTC)no subject
Date: 2005-08-02 09:50 am (UTC)Говорите, есть порт emacs под win... надо будет посмотреть.