LINUX.ORG.RU

Изменение /bin/sh по умолчанию в Debian

 , ,


0

0

Luk Claes внес в Debian'овский пакет dash важное изменение: начиная с версии 0.5.5.1-2.2, символическая ссылка /bin/sh указывает по умолчанию именно на dash. Как следствие, теперь dash является пакетом "обязательного" приоритета. Возможность выбора других вариантов для /bin/sh (например, bash) реализована через dpkg-divert. Преимущество dash - более быстрое исполнение скриптов.

Изменение затронуло только неинтерактивный интерпретатор для скриптов, начинающихся со строки "#!/bin/sh". Интерактивным интерпретатором командной строки для пользователей по умолчанию остается /bin/bash.

>>> Подробности

★★★★★

Проверено: boombick ()
Ответ на: комментарий от nnz

У пользователей bash останется в качестве интерактивного шелла. Что тебя не устраивает? Ты часто пишешь системные скрипты с башизмами?

gotf
()
Ответ на: комментарий от gotf

> Что тебя не устраивает?

Да всё его устраивает. Троллит он, развлекается :)

Manhunt ★★★★★
()
Ответ на: комментарий от gotf

Наконец, при вызове как /bin/sh, bash переходит в режим POSIX-совместимости, поэтому, если dash быстрее -- не один ли черт, что использовать для скриптов?

gotf
()
Ответ на: комментарий от gotf

>Наконец, при вызове как /bin/sh, bash переходит в режим POSIX-совместимости, поэтому, если dash быстрее -- не один ли черт, что использовать для скриптов?

Не один. Ибо (имхо) велосипеды - зло. Особенно кривые велосипеды.

nnz ★★★★
()
Ответ на: комментарий от nnz

> Ибо (имхо) велосипеды - зло. Особенно кривые велосипеды.

Согласен. Поэтому неплохо бы со временем изжить bash полностью, а не только из скриптов.

Manhunt ★★★★★
()
Ответ на: комментарий от nnz

Толсто :) dash - эффективная замена sh, также как и bash. Выходит, они оба - велосипеды. Разница всего лишь в том, что dash заменяет sh несколько более эффективно. Других отличий нет.

gotf
()
Ответ на: комментарий от gotf

>Толсто :) dash - эффективная замена sh, также как и bash. Выходит, они оба - велосипеды. Разница всего лишь в том, что dash заменяет sh несколько более эффективно. Других отличий нет.

Лично я уже давно не видел того-самого-sh. В наше время sh - это всего лишь режим работы bash. Создавать замену для _режима_, да еще велосипед, да еще кривой - имхо бессмысленно.

nnz ★★★★
()
Ответ на: комментарий от Manhunt

>Согласен. Поэтому неплохо бы со временем изжить Linux полностью, а не только из дебиана.

Хочешь ломать - ломай, но только у себя дома. В общественных заведениях помойки устраивать не надо.

nnz ★★★★
()
Ответ на: комментарий от nnz

>>Создавать замену для _режима_, да еще велосипед, да еще кривой - имхо бессмысленно.

Не кривой. dash не содержит в себе "лишних" функций и даст выигрыш в скорости при множественных его вызовах. Можно считать его тем-самым-sh. Кстати, man dash откроет страницу man sh, что как бы намекает.

gotf
()
Ответ на: комментарий от gotf

>Не кривой.

Тогда откуда проблемы с пересборкой ядра?

>выигрыш в скорости при множественных его вызовах


Сколько? 2-3%? И это ценой кучи проблем из-за его недопиленности?

>Можно считать его тем-самым-sh.


Врать себе - так по полной. Что мешает считать тем-самым-sh баш, вызванный по симлинку /bin/sh?

nnz ★★★★
()
Ответ на: комментарий от nnz

>>Тогда откуда проблемы с пересборкой ядра?

В убунте и не такое бывает :)

>>Сколько? 2-3%?

Почему бы и нет?

>>И это ценой кучи проблем из-за его недопиленности?

Ссылки на баги в студию.

>>Что мешает считать тем-самым-sh баш, вызванный по симлинку /bin/sh?

Ничего.

gotf
()
Ответ на: комментарий от gotf

>В убунте и не такое бывает :)

Теперь будет в дебиане. Спасибо удолбышам за счастливое детство.

>Почему бы и нет?


Почему бы не бросить квартиру, работу и семью и не переехать в провинцию, потому что там платят на 10 рублей больше (на фоне 60 штук)? Если кому-то просто нравится ломать, ему это решение подойдет. Однако даже ребенку понятно, что мифический выигрыш в скорости - не причина, а формальный повод.

>Ссылки на баги в студию.


Баги со сборкой ядра уже есть. И будут новые, я гарантирую это.

nnz ★★★★
()
Ответ на: комментарий от nnz

>Теперь будет в дебиане. Спасибо удолбышам за счастливое детство.

То есть удолбыши -- это те, кто отлавливает глючные скрипты, а не те, кто их пишет?

kss ★★★★★
()
Ответ на: комментарий от kss

>То есть удолбыши -- это те, кто отлавливает глючные скрипты, а не те, кто их пишет?

Я наивно полагал, что это те, кто по своей прихоти объявляет нормальные скрипты глючными.

nnz ★★★★
()
Ответ на: комментарий от nnz

>Я наивно полагал, что это те, кто по своей прихоти объявляет нормальные скрипты глючными.

Если в скрипте написано, что он интерпретируется /bin/sh, а на деле ему для этого нужен bash, то -- он не нормальный, а глючный. А с твоей логикой можно начать требовать писать питоновские и перловские проги на баше, а для того, чтобы они исполнялись ставить симлинки на питон и перл с баша.

kss ★★★★★
()
Ответ на: комментарий от kss

>Если в скрипте написано

На заборе тоже написано.

А по твоей логике dash тоже получается глюкодромом - ведь в скриптах написано /bin/sh, а выполняется /bin/dash. С твоей логикой можно начать требовать писать питоновские и перловские проги на дэше, а для того, чтобы они исполнялись ставить симлинки на питон и перл с дэша.

nnz ★★★★
()
Ответ на: комментарий от nnz

>А по твоей логике dash тоже получается глюкодромом - ведь в скриптах написано /bin/sh, а выполняется /bin/dash.

По моей логике глюкодром получается не потому ,что исполняет bash, а потому, что программа содержит вещи, для которых нужен исключительно баш, хотя задекларировано, что это не так. Если нужен баш, то пускай и стоит #!/bin/bash Вот скажи, если у тебя в программе на Си не будет подключен нужный хедер, то ты как, тоже материть компилятор или все-таки признаешь, что программа с ошибкой?

kss ★★★★★
()
Ответ на: комментарий от kss

>По моей логике глюкодром получается не потому ,что исполняет bash, а потому, что программа содержит вещи, для которых нужен исключительно баш, хотя задекларировано, что это не так. Если нужен баш, то пускай и стоит #!/bin/bash

Учимся читать. Хоть man bash, хоть этот тред. Если баш запускать через /bin/sh, он будет работать строго по posix.

nnz ★★★★
()
Ответ на: комментарий от nnz

>Учимся читать. Хоть man bash, хоть этот тред. Если баш запускать через /bin/sh, он будет работать строго по posix.

Вот только башизмы по-прежнему проглатывает без предупреждений:
$ bash --posix -c "echo {1..9}"

>На shell можно сделать только совсем простые вещи.


На позиксном шелле можно писать вещи неограниченной сложности. В том числе и обработку бинарных данных и прямую работу с сетью. А любую плейнтекстовую обработку на нём сделать зачастую гораздо проще и короче, чем на каком-либо другом языке.

Anonymous1240988302
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.