@nagayev
Какой тогда смысл в bash (кроме поддержки легаси скриптов, разумеется), если для всего в осях есть сис. вызовы, а в языках программирования — соответствующие обертки над этими сис. вызовами.
Решения вопроса 0
Ответы на вопрос 8
@saboteur_kiev
Насколько я понимаю раньше шеллы использовались в качестве примитивных высокоуровневых языков. Сейчас у нас есть Perl, Python, nodejs, php…
Ну давайте вместо рабочего стола пользователю дадим сразу Visual Studio, ведь какая разница как программу запускать — иконкой на рабочем столе, или форкать из высокоуровневого языка?
shell — это оболочка операционной системы. То, что кроме графической есть еще и command line interface — это совершенно нормально и адекватно. И шелл позволяет пользователю и администратору работать в операционной системе гораздо удобнее, чем через язык программирования.
То, что sh/bash и другие, настолько развиты что сами по себе являются неплохими языками программирования — это просто следствие того, что командый интерфейс и создавался тогда, когда каждый пользователь был немного программистом, и следствие того, что cmd line удобен для автоматизации просто по своей архитектуре.
Поэтому Powershell, bash/zsh/ksh будут продолжать развиваться.
Но ты можешь попробовать писать всю автоматизацию на любом другом языке программирования. И со временем немного столкнуться с тем, что скрипт, написанный на шелл 10 лет назад — просто работает, а скрипт написанный на питон 10 лет назад — несовместим.
@FanatPHP
Автор просто не может нормально словами написать, чего хочет.
Для современного поколения, воспитанного ютубой, это нормально.
Если бы вопрос можно было задать с помощью слов «гы-гы», «круто, чувак» и смайликов, то у него бы все получилось.
А пока приходится использовать интеллект на принимающей стороне, чтобы понять, что он там мычит.
А мычит он не про сам шелл, а про используемый в нем скриптовый язык.
И ответ получается очень простой — для некоторых задач Bash scripting language тупо подходит лучше. Не говоря уже про интеграцию скриптового языка баш в командную оболочку баш, какой никогда не добиться с помощью «обёрток».
Но при этом для очень многих скриптов используются и другие языки программирования. Никто не стоит с палкой и не бьет по рукам, если ты хочешь написать скрипт на на баше, а на перле или питоне. Но таки да — большой корпус скриптов написание и отлажен на баше, и просто нет смысла переписывать на что-то ещё.
Так что да — или легаси, или тупо адекватность задаче.
Апд. В ходе этой дискуссии я сообразил одну очень важную вещь. Язык программирования по определению является вторичным по отношению к командной оболочке. Главное в баше — это все-таки возможность запускать команды и позволять им взаимодействовать друг с другом. А язык уже построен вокруг этой основной задачи. Если вы попытаетесь вкрячить этот функционал в какой-то из языков программирования общего назначения, вы испортите и оболочку, и язык.
@dtmse
sudo useradd -m perluser -s /usr/bin/perl && sudo -u perluser -isudo useradd -m phpuser -s /usr/bin/php && sudo -u phpuser -i
@dikey_0ficial
@sand3001
@Adamos
Shell+GNU — это, по факту, и есть высокоуровневый ЯЗЫК для работы с ОС.
Гораздо лучше приспособленный к этому, чем любой из универсальных.
@DevMan
зачем нужна оболочка — понятно, вопрос зачем нужен такой язык как баш
да непонятно вам ничего: bash (как и любой другой unix–shell) – не отдельный язык, который специально устанавливается, это и есть командная оболочка. со встроенными возможностями скриптования (которые являются «примитивным» ЯП и которые отличаются по возможностям между разными оболочками).
да можно не использовать эту возможность, а устанавливать жс или питон или руби или еще что–то и пользоваться их возможностями.
но:
1. не может быть речи о переносимости без зависимостей, далеко не всегда нужных.
2. далеко не всегда возможно (например, на встраиваемых системах).
@Adler_lug
