?

Log in

No account? Create an account
ненавижу - Поклонник деепричастий [entries|archive|friends|userinfo]
Anatoly Vorobey

[ website | Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Links
[Links:| English-language weblog ]

ненавижу [июл. 31, 2005|11:33 am]
Anatoly Vorobey
(понятно будет только программистам)

Убил 20 минут на поистине идиотскую проблему; почему-то скрипт на перле не запускался напрямую "./xxx.pl", хотя "perl xxx.pl" работало отлично. Оказалось, что строчка shellbang

#!/usr/bin/perl

не работала, потому что она была не

#!/usr/bin/perl\n

а

#!/usr/bin/perl\r\n

(видимо, кто-то редактировал скрипт на Windows-системе в какой-то момент...)

Я ненавижу компьютеры.
СсылкаОтветить

Comments:
Страница 1 из 2
<<[1] [2] >>
[User Picture]From: bolk
2005-07-31 08:39 am
Когда-то очень давно тоже с этим сталкивался :) Тогда же, в первый раз запустив vi, увидел в конце этой строки "^M" и Рамазаныч, бывший веб-мастер ksu.ru (даже лица память не сохранила, столько лет прошло), объяснил мне что к чему. Или это не он объяснил... ничего не помню.
(Ответить) (Thread)
[User Picture]From: avva
2005-07-31 08:43 am
Ага, только на этих машинах /bin/vi это на самом деле vim, который (по умолчанию по крайней мере) никакие ^M не показывает. А то я бы сразу понял. Ненавижу.
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: tejblum
2005-07-31 08:45 am

Потому что надо было писать #!/usr/bin/perl -w
(Ответить) (Thread)
[User Picture]From: avva
2005-07-31 08:51 am
*безумный смех*
(Ответить) (Parent) (Thread)
[User Picture]From: ocehb
2005-07-31 08:55 am
ln -s /usr/bin/perl $'/usr/bin/perl\r'
(Ответить) (Thread)
[User Picture]From: gaal
2005-07-31 09:12 am
Yeah, that sucks, and the shell gives a completely infuriating error message too. Here's the trick I use to avoid this:

#!/usr/bin/perl -w

Once 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 --
(Ответить) (Thread)
[User Picture]From: gaal
2005-07-31 09:13 am
(Oh, I see someone already suggested that. Never mind then.)
(Ответить) (Parent) (Thread)
[User Picture]From: infanticida
2005-07-31 11:07 am
(Ответить) (Thread)
[User Picture]From: 0qwerty0
2005-07-31 11:24 am
last time I worked on Unix, I configged emacs to display \r as a bold red semicolon. useful - especially since it can appear anywhere, in every data or conf file DOS has touched...
best of!
(Ответить) (Thread)
[User Picture]From: olkab
2005-07-31 11:39 am
Good idea. I'll think of using it.
(Ответить) (Parent) (Thread)
[User Picture]From: avnik
2005-07-31 12:32 pm
Я полагаю можно чуть полечить строчку в fs/binfmt_misc.c
И уравнять в правах \n и \r\n

if ((cp = strchr(bprm->buf, '\n')) == NULL)
cp = bprm->buf+BINPRM_BUF_SIZE-1;

Хотя как-то это идеологически неверно
(Ответить) (Thread)
[User Picture]From: avva
2005-07-31 01:50 pm
А правильно бы, несмотря на идеологическую неверность, по-моему ;)
(хотя пуристы наверное не позволят, да)
(Ответить) (Parent) (Thread)
[User Picture]From: bespechnoepero
2005-07-31 01:24 pm
Давно уже пора все порушить и переделать заново. Новая ОС, новые языки.
(Ответить) (Thread)
[User Picture]From: arbat
2005-07-31 01:28 pm
По-моему, правильнее "shebang".
(Ответить) (Thread)
[User Picture]From: avva
2005-07-31 01:51 pm
и так и этак есть.
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: bespechnoepero
2005-07-31 01:29 pm
Лучше конечно уж тогда и новые компьютеры, потому что современные тоже продукт длительного достраивания, согласовываня старых частей с новыми, куча обходных путей, компромиссов, багов.
(Ответить) (Thread)
[User Picture]From: furry
2005-07-31 02:10 pm
нда...в привычке говорить perl -w - что-то есть, определенно..;-)
(Ответить) (Thread)
[User Picture]From: avva
2005-07-31 04:21 pm
Да, теперь я понимаю ;)
(Ответить) (Parent) (Thread)
[User Picture]From: alexis_m
2005-07-31 02:17 pm
Втречал на оборот.
Админ под линуксом редактировал скрипт, выполняющийся на пользовательской машине при регистрации. Первой, как обычно, прибежала бухгалтерия. :)
(Ответить) (Thread)
[User Picture]From: rsc_gai
2005-07-31 03:54 pm
А при чём тут компьютеры. Я когда-то искал ошибки и в 1 бит.
(Ответить) (Thread)
[User Picture]From: evilmeans
2005-07-31 06:43 pm
проблема с компьютерами в том, что они делают то, что вы приказали им делать, а не то что вы хотите чтобы они делали
(Ответить) (Thread)
[User Picture]From: cema
2005-07-31 08:03 pm
Прапорщик, остановите поезд. — Поезд, стой! Раз, два.
(Ответить) (Parent) (Thread)
[User Picture]From: iseg
2005-07-31 08:29 pm
приходите к нам работать. :)
у нас с 1998 года из-под unix нельзя закоммитить текстовый файл с \r-ами
(Ответить) (Thread)
Страница 1 из 2
<<[1] [2] >>