программирование сценариев bash

Вопросы написания собственного программного кода (на любых языках)

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 14939
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Программирование сценариев bash

Непрочитанное сообщение Olej » 15 фев 2019, 13:02

Столкнулся с неожиданностью... :-o

Код: Выделить всё

olej@ACER:~/2019_WORK/own.WORK/MachineLearning/digits$ lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux buster/sid
Release:	testing
Codename:	buster
Обнаружил ... для себя неожиданную вещь:

Код: Выделить всё

olej@ACER:~$ ls -l `which sh`
lrwxrwxrwx 1 root root 4 янв 17 21:08 /usr/bin/sh -> dash

Код: Выделить всё

olej@ACER:~$ ls -l /usr/bin/*ash* | egrep [a...z]*ash
-rwxr-xr-x 1 root root 1168776 янв 24 12:01 /usr/bin/bash
-rwxr-xr-x 1 root root    6793 янв 24 12:01 /usr/bin/bashbug
-rwxr-xr-x 1 root root   39296 мая  5  2018 /usr/bin/buildhash
-rwxr-xr-x 1 root root    6332 ноя 22 20:40 /usr/bin/c_rehash
-rwxr-xr-x 1 root root  121464 янв 17 21:08 /usr/bin/dash
-rwxr-xr-x 1 root root     277 фев  9 14:02 /usr/bin/gvfs-trash
-rwxr-xr-x 1 root root  190752 янв 18 22:45 /usr/bin/mksquashfs
-rwxr-xr-x 1 root root   10376 янв 30  2016 /usr/bin/ppmflash
lrwxrwxrwx 1 root root       4 янв 24 12:01 /usr/bin/rbash -> bash
-rwxr-xr-x 1 root root   99104 янв 18 22:45 /usr/bin/unsquashfs
Легко видеть, что а). bash и dash различаются (и размером и датой), б). по умолчанию в качестве sh используется dash.
Чем они различаются?

Аватара пользователя
Olej
Писатель
Сообщения: 14939
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Программирование сценариев bash

Непрочитанное сообщение Olej » 15 фев 2019, 13:12

Olej писал(а): Легко видеть, что а). bash и dash различаются (и размером и датой), б). по умолчанию в качестве sh используется dash.
Чем они различаются?
Произошло это давно ... похоже в 2008г., во всех Debian/Ubuntu системах, описано это здесь: Spec
Rationale
Our default shell is currently bash, which is slow and very large as it is intended as a user login shell. While this is good for users, it is not the best shell for running shell scripts; there are far smaller and faster shells that provide POSIX compliance such as dash.
By changing the /bin/sh symlink from bash to dash we can have the best of both worlds.
...
DashAsBinSh/Spec (последним исправлял пользователь localhost 2008-08-06 16:22:08)

А детальное перечисление различий здесь: DashAsBinSh
In Ubuntu 6.10, the default system shell, /bin/sh, was changed to dash (the Debian Almquist Shell); previously it had been bash (the GNU Bourne-Again Shell). The same change will affect users of Ubuntu 6.06 LTS upgrading directly to Ubuntu 8.04 LTS. This document explains this change and what you should do if you encounter problems.

The default login shell remains bash. Opening a terminal from the menu or shortcut [crtl-alt-t] provides interactive bash. A script run from the desktop or file manager, through the dialogue 'run in terminal' will execute as POSIX dash.
...
DashAsBinSh (последним исправлял пользователь 1047481448-2 2017-12-16 09:23:41)

Аватара пользователя
Olej
Писатель
Сообщения: 14939
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Программирование сценариев bash

Непрочитанное сообщение Olej » 15 фев 2019, 13:16

Olej писал(а):Чем они различаются?
Debian Almquist shell
Debian Almquist shell (dash) — командная оболочка UNIX, намного более легковесная, чем bash, при этом POSIX-совместимая. dash занимает очень мало места на диске, но не может похвастаться богатой функциональностью. Некоторые отсутствующие функции, например, переменная $LINENO[4], требуются для совместимости с POSIX.

Dash — прямой потомок Almquist shell (ash) из NetBSD. Он был портирован под Linux Хербертом Сюем в начале 1997 года. Проект был переименован в dash в 2002 году.

Аватара пользователя
Olej
Писатель
Сообщения: 14939
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Программирование сценариев bash

Непрочитанное сообщение Olej » 24 июл 2021, 14:13

Olej писал(а):
24 май 2016, 16:42
Сделали и выложили (май 2016г.) новый перевод последней (как утверждается) редакции документа Advanced Bash-Scripting Guide: Полный ABS Guide.pdf (поскольку это частный ресурс, кому нужно - скачайте сразу, обсуждение со ссылками найдёте здесь: http://www.linuxim.ru/viewtopic.php?f=83&t=810 , если ссылка для скачивания потеряется):
Как и следовало ожидать - теперь по этим ссылка лежит какое-то Android-гавно! :-o
Нужно бы сверить свежие варианты по оригиналу:
Olej писал(а):
24 май 2016, 16:42
Mendel Cooper
Revision 10
10 Марта 2014
'PUBLICDOMAIN' release

Аватара пользователя
Olej
Писатель
Сообщения: 14939
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Программирование сценариев bash

Непрочитанное сообщение Olej » 24 июл 2021, 14:25

Olej писал(а):
24 июл 2021, 14:13
Нужно бы сверить свежие варианты по оригиналу:
Вот тут вот выложили (лежит пока ;-) ) версия нового перевода: Полный ABS Guide.pdf
В скачанном тексте находим:
Посильный перевод: Быков О.В. aka Oleg65
10 Марта 2014
История проверок
Revision 6.5
05 Апреля 2012
'TUNGSTENBERRY' release
Revision 6.6
27 Ноября 2012
'YTTERBIUMBERRY' release
Revision 10
10 Марта 2014
'PUBLICDOMAIN' release
Т.е. всё тот же релиз 10 от Mendel Cooper.

Ответить

Вернуться в «Программирование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя