LINUX.ORG.RU

История изменений

Исправление Pinkbyte, (текущая версия) :

Posix shell. Баш - надмножество Posix shell, ни одной баш-специфичной конструкции в результирующем наборе команд нет. Пайпы(вот эти вот «|», если благородному дону угоден русский вариант - «трубы») - это не bash-специфичная вещь. Вызов внешней команды(fortune, tr, twigle) - тоже.

Отвлеченный пример: есть две конструкции if, например такая:

if [ "$foo" = "bar" ]; then
exit 0
fi

И вот такая:

if [[ "$foo" = "bar" ]]; then
exit 0
fi

Так вот - первая сработает в любом шелле, который совместим с POSIX sh. А вот вторая - нет, это т.называемый «башизм», и работать это будет только в bash, ну и еще может в шеллах, которые озабочены совместимостью с bash.

Причем, смешная штука, [ - это внешняя команда. Бинарник. Проверить можешь командой which [. А вот [[ - это встроенная конструкция языка в bash.

Исправление Pinkbyte, :

Posix shell. Баш - надмножество Posix shell, ни одной баш-специфичной конструкции в результирующем наборе команд нет. Пайпы(вот эти вот «|», если благородному дону угоден русский вариант - «трубы) - это не bash-специфичная вещь. Вызов внешней команды(fortune, tr, twigle) - тоже.

Отвлеченный пример: есть две конструкции if, например такая:

if [ "$foo" = "bar" ]; then
exit 0
fi

И вот такая:

if [[ "$foo" = "bar" ]]; then
exit 0
fi

Так вот - первая сработает в любом шелле, который совместим с POSIX sh. А вот вторая - нет, это т.называемый „башизм“, и работать это будет только в bash, ну и еще может в шеллах, которые озабочены совместимостью с bash.

Причем, смешная штука, [ - это внешняя команда. Бинарник. Проверить можешь командой which [. А вот [[ - это встроенная конструкция языка в bash.

Исправление Pinkbyte, :

Posix shell. Баш - надмножество Posix shell, ни одной баш-специфичной конструкции в результирующем наборе команд нет. Пайпы(вот эти вот «|», если благородному дону угоден русский вариант - «трубы) - это не bash-специфичная вещь. Вызов внешней команды(fortune, tr, twigle) - тоже.

Отвлеченный пример: есть две конструкции if, например такая:

if [ "$foo" = "bar" ]; then
exit 0
fi

И вот такая:

if [[ "$foo" = "bar" ]]; then
exit 0
fi

Так вот - первая сработает в любом шелле, который совместим с POSIX sh. А вот вторая - нет, это т.называемый „башизм“, и работать это будет только в bash, ну и еще может в шеллах, которые озабочены совместимостью с bash.

Исходная версия Pinkbyte, :

Posix shell. Баш - надмножество Posix shell, ни одной баш-специфичной конструкции в результирующем наборе команд нет. Пайпы(или если благородному дону угоден русский вариант - «трубы) - это не bash-специфичная вещь. Вызов внешней команды(fortune, tr, twigle) - тоже.

Отвлеченный пример: есть две конструкции if, например такая:

if [ "$foo" = "bar" ]; then
exit 0
fi

И вот такая:

if [[ "$foo" = "bar" ]]; then
exit 0
fi

Так вот - первая сработает в любом шелле, который совместим с POSIX sh. А вот вторая - нет, это т.называемый „башизм“, и работать это будет только в bash, ну и еще может в шеллах, которые озабочены совместимостью с bash.