LINUX.ORG.RU

Параметры bash и расширения параметров


0

0

Эта статья сфокусирована на bash, и все примеры выполнялись на системе Linux с командной оболочкой bash. Однако такие же расширения доступны во многих других оболочках, таких как ksh, ash или dash, и вы можете использовать их в этих оболочках на других системах UNIX или даже в других средах, например, в Cygwin.

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

★★★

Проверено: Shaman007 ()

Ответ на: комментарий от anonymous

> Так а чем ash не угодил? Почему нельзя было его развивать, если требовался минимальный шелл?

по моему дебианский пакет dash уже удален, и судя по этому: http://www.in-ulm.de/~mascheck/various/ash/recent_changes.html

разные ветки ash (в разных БСД это дефолтовый шелл) были смержены. не уверен 100%

dilmah ★★★★★
()

статье самое место на bash.org.ru

AiFiLTr0 ★★★★★
()

ссылка не грузится, ибо ibm developer works в block content

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

>> А подумать (или ман почитать)?

> Проблемы bash-only скриптов это не решает.

Однако вас поставили на место, с вашим криком о том, что sh -> bash это тупо, а проблемы bash-only скриптов это проблемы разработчиков этих скриптов.

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

>> делать ссылку /bin/sh -> /bin/bash - как минимум, тупо.

> в RedHat тупые люди?

Да лажанулся пацан, в большинстве дистрибутивов так

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

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

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

> то кто назовёт тебя (или твой дистр) умным? читаем man bash

раздел INVOCATION: [...] If bash is invoked with the name sh, it tries to mimic the startup behavior of historical versions of sh as closely as possible, while conforming to the POSIX standard as well. [...]

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

Он не только "имеет свои расширения", но не совместим полностью с sh

Если мне не изменяет память, то bash, вызванный по линку /bin/sh работает в режиме совместимости c sh и ограничивает использование "башизмов"

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

Кстати, я не понимаю брызганья слюной по этому поводу. bash доступен для широкого круга платформ? Доступен. Документирован? Документирован. Почему его нужно считать a priori хуже того же sh, я не понимаю. Есть куча старого дерьма, написанного на sh? Так чьи это проблемы: того, кто пользуется bash или того, кто пользуется этим дерьмом?

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

> Следите за тем, кому отвечаете, а то конфузы выходят.

примите извинения!

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

> IMHO, лучшая инструкция по Bash - это Advanced Bash - Scripting Guide

Безусловно. Но здесь часть концентрирована. :)

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

> Кстати, я не понимаю брызганья слюной по этому поводу. bash доступен для широкого круга платформ? Доступен. Документирован? Документирован. Почему его нужно считать a priori хуже того же sh, я не понимаю. Есть куча старого дерьма, написанного на sh? Так чьи это проблемы: того, кто пользуется bash или того, кто пользуется этим дерьмом?

Скажи гномерам, что КДЕ на всех платформах есть, так почему бы и не писать под кде :)

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

> Почему же ты тогда еще не там?

В IBM платят мало.

execve
()

Автору спасибо. А всяких диблоидов, лезущих вон из кожи, лишь бы показать, мол они знают, что баш и посикс шелл это не одно и то же, вот их в топку. Причем желательно с этим не медлить.

balodja ★★★
()

> расширения параметров

а кто догадался так перевести? Это раскрытие параметров. Подстановка параметров. Но не расширение..

dilmah ★★★★★
()

> Обратите внимание: Если вы используете более 9 параметров, вы не можете использовать $10 для обращения к десятому параметру. Вы должны сначала или обработать или сохранить первый параметр ($1), а затем использовать команду shift, чтобы зафиксировать параметр 1 и переместить все остальные параметры под 1, так что $10 станет $9 и так далее. 


Враньо!

Даже если 11й параметр, то баш-прога его выведед!


#!/bin/bash
echo ${11}
exit 0

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

Чего? Тоже задело? Ну, становись в очередь тогда. Нефиг лезть вперед.

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

Лично меня раздражает вот этот башиоизм:

$ if[$A=$B];then echo 1;fi
bash: syntax error near unexpected token `then'
$ if[ $A=$B ];then echo 1;fi
bash: syntax error near unexpected token `then'
$ if [ $A=$B ];then echo 1;fi
1

Чуствительность к пробелу исходя из сути /usr/bin/[ ! Ацтой! Фтопку!

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

>Лично меня раздражает вот этот башиоизм:

$ ls -l `which [`

lrwxrwxrwx 1 root root 4 Май 28 2006 /usr/bin/[ -> test

Этого достаточно, чтобы понять, почему так, или разжевать надо ?

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

Кстати, это автору в плюс, а не в минус. По посиксу именно так, как он пишет.

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

> Этого достаточно, чтобы понять, почему так, или разжевать надо ?

Этого достаточно для того, чтобы понять какие кривые костыли добавляют к башу, чтобы сделать из него язык программирования.

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

Из него делают язык программирования? ухты.

Хотя команда [ и является для баша встроенной (проверьте, удалив 'which [') но она таки является КОМАНДОЙ все таки и должна писаться отдельно и после неё должен быть пробел.

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

> будем растопириывать пальцы и орать "{python,tcl,perl,...} - ф топку!"?

Кстати, да. Почему до сих пор не вижу бурного обсирания питона? Ну, чтобы потом говорить, что (в смысле, питонеры) "они первые начали"... :-)

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

> Почему до сих пор не вижу бурного обсирания питона?

Кинуть в питона файлом kakashka.sh?

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

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

я писал компилятор на шелле:) Из набора правил-условий в дерево решений/перловый модуль. Бэкенд 1800 строк, фронтенд 800 строк.

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