The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Раздел полезных советов: Скрипт для конвертации архива gz в lzma, auto_tips (ok), 27-Фев-22, (0) [смотреть все] +2

Сообщения [Сортировка по времени | RSS]


4. "Скрипт для конвертации архива gz в lzma"  +4 +/
Сообщение от Аноним (2), 01-Мрт-22, 07:55 
> отказать. снижает читаемость

echo не надежен, т. к. не дает универсального интерфейса для вывода самых разных строк. Например, выведи мне строку "-n". Вот попробуй сам: echo -n

> "структурное програмирование". слыхали про такую парадигму ?

если весь код оформлять чисто структурно, то он быстро перейдет в трудноподдерживаемое состояние. Вместо этого следует использовать контрактное программирование, при котором все предусловия проверяются еще до начала работы. (Забудем на минуту, что конкретно в этом скрипте предусловия проверять вообще не надо -- пусть падает вызываемая прога.)

> linux only

че за рандомная ссылка? как она отвечает на мой вопрос?

> в dash этого нет.

Ну а в каких шеллах ты вообще проверял свой скрипт, раз хочешь "кросс-шелловость"? bash? csh? zsh? ash? fish?

> как копирайт, только наоборот. google it.

нет такой лицензии "копирайт". Нет такой лицензии "копилефт". google it: https://choosealicense.com/

Ответить | Правка | Наверх | Cообщить модератору

17. "Скрипт для конвертации архива gz в lzma"  +/
Сообщение от pavlinux (ok), 26-Мрт-22, 11:59 
Например, выведи мне строку "-n".
echo -e  '\b-n'
Ответить | Правка | Наверх | Cообщить модератору

22. "Скрипт для конвертации архива gz в lzma"  +/
Сообщение от ммнюмнюмус (?), 29-Мрт-22, 02:38 
> Например, выведи мне строку "-n".
> echo -e  '\b-n'

А если переносимо, чтоб и на bash и на dash?
Например, dash выдаст: -e-n

В стандарте на posix shell вообще нет echo.

printf '%s' "строка"  # Вполне читаемо

Ответить | Правка | Наверх | Cообщить модератору

23. "Скрипт для конвертации архива gz в lzma"  +1 +/
Сообщение от pavlinux (ok), 29-Мрт-22, 12:24 
>> Например, выведи мне строку "-n".
>> echo -e  '\b-n'
> А если переносимо, чтоб и на bash и на dash?

[ $SHELL == "dash" ] then
[ $SHELL == "bash" ] then
[ $SHELL == "mash" ] then
[ $SHELL == "sash" ] then

> Например, dash выдаст: -e-n

On XSI-conformant systems, if the first operand is -n, it shall be treated as a string,
not an option. The following character sequences shall be recognized on XSI-conformant
systems within any of the arguments:

Так что, это ты пишешь не по стандарту, а не echo плохое.  :D

> В стандарте на posix shell вообще нет echo.

The Open Group Base Specifications Issue 7, 2018 edition
IEEE Std 1003.1-2017 (Revision of IEEE Std 1003.1-2008)
Copyright © 2001-2018 IEEE and The Open Group

https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/

Ответить | Правка | Наверх | Cообщить модератору

24. "Скрипт для конвертации архива gz в lzma"  +/
Сообщение от ммнюмнюмус (?), 31-Мрт-22, 22:50 
>>> Например, выведи мне строку "-n".
>>> echo -e  '\b-n'
>> А если переносимо, чтоб и на bash и на dash?
> [ $SHELL == "dash" ] then
> [ $SHELL == "bash" ] then
> [ $SHELL == "mash" ] then
> [ $SHELL == "sash" ] then

Кажется, вы предлагали echo для компактности. Все, гуляй компактность.

>> Например, dash выдаст: -e-n
> On XSI-conformant systems, if the first operand is -n, it shall be
> treated as a string,
> not an option. The following character sequences shall be recognized on XSI-conformant
> systems within any of the arguments:

Прямо перед этим:
> If the first operand is -n, or if any of the operands contain a <backslash> character, the results are implementation-defined.

===============
> Так что, это ты пишешь не по стандарту, а не echo плохое.
>  :D

printf един, а у echo

>APPLICATION USAGE
> It is not possible to use echo portably across all POSIX systems unless both -n (as the first argument) and escape sequences are omitted.
> The printf utility can be used portably to emulate any of the traditional behaviors of the echo utility as follows (assuming that IFS has its standard value or is unset):

================
>> В стандарте на posix shell вообще нет echo.
> The Open Group Base Specifications Issue 7, 2018 edition
> IEEE Std 1003.1-2017 (Revision of IEEE Std 1003.1-2008)
> Copyright © 2001-2018 IEEE and The Open Group
> https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/

Ну тогда уж сюда, а то еще раздел "Command language" искать.
https://pubs.opengroup.org/onlinepubs/9699919799.2018edition...

И то - сам стандарт прямо говорит, что переносимость у echo так себе. Вот делать нечего, как зачитывать все эти имена вместо одной строчки printf. Не та цель.

Ответить | Правка | Наверх | Cообщить модератору

47. "Скрипт для конвертации архива gz в lzma"  +/
Сообщение от echomaster (?), 07-Май-22, 20:58 
echo - -n
Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

56. "Скрипт для конвертации архива gz в lzma"  +/
Сообщение от OpenEcho (?), 25-Фев-23, 19:35 
> разных строк. Например, выведи мне строку "-n". Вот попробуй сам: echo -n

Я что то не понял, а в чем проблема?

echo -n '-n'


Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру