LINUX.ORG.RU

как запускаешь скрипт и есть ли в шапке указание на работающий интерпретатор шелла?

Infra_HDC ★★★★★
()
set -B
echo {1..255}

Потому что brace expansion по умолчанию выключено в неинтерактивной оболочке, set -B включает.

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

Хм, попробовал сделать в скрипте, тоже работает, а я думал оно как алиасы. Но set должен включить в любом случае. Может оно в глобальных настройках в каких-то дистрибутивах выключается.

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

Это не старая версия, а ТС врёт, как сивый мерин.
Он показывает информацию непосредственно с консоли, где у него bash, а скрипт запускает sh calc.sh, отсюда и характерный dash-евский выхлоп.

ABW ★★★★★
()
Последнее исправление: ABW (всего исправлений: 1)
Ответ на: комментарий от ABW

Тоже думал на dash, но не догадался на удалённой системе попробовать (локально его нет). Не знал, что он прикидывается bash:

$ cat tst
echo $SHELL
$ dash tst
/bin/bash

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

Не знал, что он прикидывается bash

Нет, просто bash, зараза, эту переменную зачем-то экспортирует по умолчанию (сделай unset и повтори свой тест). А вообще-то кроме bash-а её устанавливает из мне известных на Linux только ksh(93).

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

Да, туплю. Вообще это же при логине в системе выставляется в соответствии с /etc/passwd, так что переменная внешняя и он её сохраняет, а так похоже, что она не экспортируется:

$ export | grep SHELL
declare -x SHELL="/bin/bash"
declare -x XTERM_SHELL="/bin/bash"
$ unset SHELL
$ bash
$ echo $SHELL
/bin/bash
$ export | grep SHELL
declare -x XTERM_SHELL="/bin/bash"

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