Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Скрипт  (Прочитано 6889 раз)

0 Пользователей и 1 Гость просматривают эту тему.

ywaw

  • Автор темы
  • Гость
Скрипт
« : 27 Май 2011, 14:18:32 »
Пытаюсь писать небольшой скрипт, первая строка:
#!/bin/bash
При запуске терминал ругается: /bin/bash^M: плохой интерпретатор: Нет такого файла или каталога
Подскажите, что не так и как надо правильно?

Оффлайн RazrFalcon

  • O_o
  • Старожил
  • *
  • Сообщений: 3144
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: Скрипт
« Ответ #1 : 27 Май 2011, 14:22:29 »
как запускаете скрипт?
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: http://help.ubuntu.ru/wiki/fixme

Оффлайн фирэфохэ

  • Старожил
  • *
  • Сообщений: 2169
  • straightedge
    • Просмотр профиля
Re: Скрипт
« Ответ #2 : 27 Май 2011, 14:24:48 »
Замени виндовые окончания строк на униховые.
http://i18.ЗАПРЕЩЁННЫЙ РЕСУРС/big/2011/0325/6d/19eaa72dd24048a6fb0587832c4b096d.gif КДЕ - УГ. Дебиан - недоось.

Оффлайн фирэфохэ

  • Старожил
  • *
  • Сообщений: 2169
  • straightedge
    • Просмотр профиля
Re: Скрипт
« Ответ #3 : 27 Май 2011, 14:26:06 »
Вот так:
$ perl -pi -e "s/\r\n/\n/" ./путь/к/скрипту
Пользователь решил продолжить мысль 27 Май 2011, 14:26:49:
2.4
Ну тут хоть какая-то информативность есть.
http://i18.ЗАПРЕЩЁННЫЙ РЕСУРС/big/2011/0325/6d/19eaa72dd24048a6fb0587832c4b096d.gif КДЕ - УГ. Дебиан - недоось.

ywaw

  • Автор темы
  • Гость
Re: Скрипт
« Ответ #4 : 27 Май 2011, 14:35:41 »
как запускаете скрипт?
Нахожусь в каталоге где скрипт и запускаю: ./script1

Оффлайн A.H.A

  • Участник
  • *
  • Сообщений: 103
  • Ubuntu 18.04 64-bit
    • Просмотр профиля
Re: Скрипт
« Ответ #5 : 27 Май 2011, 14:38:19 »
А не должно ли быть так?!

#!/usr/bin/env bash

Оффлайн фирэфохэ

  • Старожил
  • *
  • Сообщений: 2169
  • straightedge
    • Просмотр профиля
Re: Скрипт
« Ответ #6 : 27 Май 2011, 14:40:18 »
Не должно быть. Я написал же в чём проблема.
http://i18.ЗАПРЕЩЁННЫЙ РЕСУРС/big/2011/0325/6d/19eaa72dd24048a6fb0587832c4b096d.gif КДЕ - УГ. Дебиан - недоось.

Оффлайн БТР

  • Заслуженный пользователь
  • Модератор форума
  • Старожил
  • *
  • Сообщений: 5370
    • Просмотр профиля
Re: Скрипт
« Ответ #7 : 27 Май 2011, 14:41:54 »
Пытаюсь писать небольшой скрипт
это надо делать не в венде, или как минимум указывать окончания строк UNIX

При запуске терминал ругается: /bin/bash^M: плохой интерпретатор: Нет такого файла или каталога
Подскажите, что не так и как надо правильно?
открой скрипт в mcedit и ты сам всё увидишь.

ywaw

  • Автор темы
  • Гость
Re: Скрипт
« Ответ #8 : 27 Май 2011, 14:42:54 »
Замени виндовые окончания строк на униховые.
откуда им взяться? скрипт писал в терминале в nano

Оффлайн фирэфохэ

  • Старожил
  • *
  • Сообщений: 2169
  • straightedge
    • Просмотр профиля
Re: Скрипт
« Ответ #9 : 27 Май 2011, 14:44:04 »
Я откуда знаю, делай:
$ perl -pi -e "s/\r\n/\n/" ./путь/к/скрипту
http://i18.ЗАПРЕЩЁННЫЙ РЕСУРС/big/2011/0325/6d/19eaa72dd24048a6fb0587832c4b096d.gif КДЕ - УГ. Дебиан - недоось.

ywaw

  • Автор темы
  • Гость
Re: Скрипт
« Ответ #10 : 27 Май 2011, 14:45:34 »
Пытаюсь писать небольшой скрипт
это надо делать не в венде, или как минимум указывать окончания строк UNIX

При запуске терминал ругается: /bin/bash^M: плохой интерпретатор: Нет такого файла или каталога
Подскажите, что не так и как надо правильно?
открой скрипт в mcedit и ты сам всё увидишь.
Я в Ubuntu делал, у меня на этом компе и винды-то нет

Оффлайн фирэфохэ

  • Старожил
  • *
  • Сообщений: 2169
  • straightedge
    • Просмотр профиля
Re: Скрипт
« Ответ #11 : 27 Май 2011, 14:48:38 »
$ #пишем скрипт:
$ echo '#! /bin/bash
> echo lol' > ./script
$ chmod +rx ./script
$ #запускаем - работает
$ ./script
lol
$ # меняем окончания строк на виндовые
$ perl -pi -e "s/\n/\r\n/" ./script
$ #запускаем, получаем твою ошибку
$ ./script
bash: ./script: /bin/bash^M: плохой интерпретатор: Нет такого файла или каталога
$ #меняем обратно, всё работает
$ perl -pi -e "s/\r\n/\n/" ./script
$ ./script
lol
http://i18.ЗАПРЕЩЁННЫЙ РЕСУРС/big/2011/0325/6d/19eaa72dd24048a6fb0587832c4b096d.gif КДЕ - УГ. Дебиан - недоось.

ywaw

  • Автор темы
  • Гость
Re: Скрипт
« Ответ #12 : 27 Май 2011, 14:56:35 »
$ #пишем скрипт:
$ echo '#! /bin/bash
> echo lol' > ./script
$ chmod +rx ./script
$ #запускаем - работает
$ ./script
lol
$ # меняем окончания строк на виндовые
$ perl -pi -e "s/\n/\r\n/" ./script
$ #запускаем, получаем твою ошибку
$ ./script

Просмотрел скрипт в hex-формате.Так и есть. Чтож на каждый скрипт ещё скрипт писать? Я в перле ни бум-бум.
Попробую другой редактор, который концы нормально делает.
bash: ./script: /bin/bash^M: плохой интерпретатор: Нет такого файла или каталога
$ #меняем обратно, всё работает
$ perl -pi -e "s/\r\n/\n/" ./script
$ ./script
lol

Оффлайн фирэфохэ

  • Старожил
  • *
  • Сообщений: 2169
  • straightedge
    • Просмотр профиля
Re: Скрипт
« Ответ #13 : 27 Май 2011, 14:59:16 »
geany поставь - офигенный редактор текстовый, там и окончания строк исправьть можно. А вообще хз почему нано такие окончания строк сделало УМВР.
http://i18.ЗАПРЕЩЁННЫЙ РЕСУРС/big/2011/0325/6d/19eaa72dd24048a6fb0587832c4b096d.gif КДЕ - УГ. Дебиан - недоось.

ywaw

  • Автор темы
  • Гость
Re: Скрипт
« Ответ #14 : 27 Май 2011, 15:02:56 »
Попробовал в gedit - тот же кампот, на конце 0D0A
Кто знает где есть настройки чтобы редакторы кончали нормально строки?

Пользователь решил продолжить мысль 27 Май 2011, 15:13:39:
Я откуда знаю, делай:
$ perl -pi -e "s/\r\n/\n/" ./путь/к/скрипту

Не получается.
home@home-Vostro-1015:~/Общедоступные/Calc$ $ perl -pi -e "s/\r\n/\n/" ./script1
$: команда не найдена
« Последнее редактирование: 27 Май 2011, 15:13:40 от ywaw »

 

Страница сгенерирована за 0.125 секунд. Запросов: 22.