Сайт | Скачать | Видео | Wiki

Автор Тема: Шебанг  (Прочитано 548 раз)

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

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 2528
  • Репутация: +31/-0
  • Автор темы
    • Беседка магос
Шебанг
« : 26 Декабрь 2019, 09:10:53 »
При запуске утилит в стреде убунту возникла проблемка. Сам не разбирался,  все со слоов ingvaro. Кому интересно смотрите наш форум.
Смысл в том, что в убунте sh это не ссылка на bash, а что-то другое. И это нечто не понимает == в квадратых скобках, только одинарное =.  Не думал, что это башизм, но похоже так.
MagOS betcher # man test |grep =
       STRING1 = STRING2
       STRING1 != STRING2

Не удивлюсь если всплывет еще что-то. Отсюда вопрос, как чинить будем? Зменять == на = или менять шебанг на /bin/bash?
http://magos-linux.ru - форум
https://gitter.im/magos-linux-ru/chat - беседка (чат)

Оффлайн ingvaro

  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
Re: Шебанг
« Ответ #1 : 26 Декабрь 2019, 11:15:39 »
Два варианта  правки
1) В скриптах PFS   1 строка   #!/bin/bash
2)   В скриптах PFS  1 строка  #!/bin/sh  и  во всех скриптах **==**  заменены  на **=**

Оба варианта рабочие. Все работает, по крайней мере паковка и распаковка модуля. Тени на месте
Обсуждение на нашем форуме - https://forum.magos-linux.ru/t/magosm-dlya-magos-2016-64/112/26?u=ingvaro
PS
Есть и третий вариант. Не запускать PFS на Убунту

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 29290
  • Репутация: +196/-0
    • PuppyRus-A
Re: Шебанг
« Ответ #2 : 26 Декабрь 2019, 11:26:53 »
Давайте ориентироваться там где можно (а вроде в пфс везде можно) на sh из busybox
Это будет максимально легко и универсально

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 2528
  • Репутация: +31/-0
  • Автор темы
    • Беседка магос
Re: Шебанг
« Ответ #3 : 26 Декабрь 2019, 12:13:45 »
sh из бизибокс понимает ==? Думаю - да, раз до сих пор работало. А sh из убунты - нет.  Вопрос не решен. Оставить все как есть не вариант.
http://magos-linux.ru - форум
https://gitter.im/magos-linux-ru/chat - беседка (чат)

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 29290
  • Репутация: +196/-0
    • PuppyRus-A
Re: Шебанг
« Ответ #4 : 27 Декабрь 2019, 10:05:38 »
sh из бизибокс понимает ==?
Да.
Код
# busybox sh -c "[ 1 = 1 ] && echo ok"
ok
И busybox ash понимает. И оба они == понимают
А чем == отличается от = ?
В юбунте sh - симлинк на dash

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 2528
  • Репутация: +31/-0
  • Автор темы
    • Беседка магос
Re: Шебанг
« Ответ #5 : 27 Декабрь 2019, 11:25:09 »
А чем == отличается от = ?
Хороший вопрос. Всегда думал, что == это для сравнения, = для присвоения значения переменной. То что = работает и в сравнении конечно знал, но думал что это просто допущение. В man test, а квадратная скобка это синоним для test, написано конкретно одинарное равно. Теперь не пойму откуда вообще взялось двойное :)
По идее можно везде заменить двойное равно на одинарное, но не сломается ли где-то еще.
Надо подумать на счет проверки в разных шелах в селфтест.
http://magos-linux.ru - форум
https://gitter.im/magos-linux-ru/chat - беседка (чат)

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 2528
  • Репутация: +31/-0
  • Автор темы
    • Беседка магос
Re: Шебанг
« Ответ #6 : 04 Январь 2020, 10:18:01 »
Запушил в v4 замену двойного равно на одинарные. Селфтест в магос проходит, надеюсь ни у кого  не отвалился.
http://magos-linux.ru - форум
https://gitter.im/magos-linux-ru/chat - беседка (чат)

Оффлайн ingvaro

  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
Re: Шебанг
« Ответ #7 : 11 Январь 2020, 21:52:45 »
Два варианта  правки
1) В скриптах PFS   1 строка   #!/bin/bash
2)   В скриптах PFS  1 строка  #!/bin/sh  и  во всех скриптах **==**  заменены  на **=**

Опять Убунту
Применил вариант 1, но пошли сбои и непонятки
По результатам тестирования остался  **только вариант 2**
Иначе например mkpfs мне модуль в Убунту пакует, но жалуется на стр 371 в pfs
И если войти в систему под юзером, в терминале не работали клавы перемещения ????
Заменил все ==  на =  в PFS
Все ок !!!!

« Последнее редактирование: 11 Январь 2020, 21:55:42 от ingvaro »