LINUX.ORG.RU

Интерпретаторы shell vs cmd

 ,


0

1

cmd — это тот, который по-дефолту в оффтопике, если чо.

Хотелось бы узнать мнения о возможностях того и другого интерпретатора. Их часто сравнивают не совсем честно, по критериям, не связанным с самими интерпретаторами, а по наличию встроенных в соответствующую OS утилит, типа grep, sed, cat, и др. Это скорей, сравнение осей а не интерпретаторов, к тому же, почти все они портированы на все платформы. А хотелось бы сравнить именно сами интерпретаторы, их языковые возможности, гибкость, удобство и прочее, безотносительно OS.

ЗЫ Ну да, и хотелось бы придерживаться рамок POSIX, по поводу шелла, иначе границы сильно размоются, тысячи их.



Последнее исправление: selena-gomes (всего исправлений: 1)

cmd лучше, всем известно. А sh - написанное на коленке нечто. Студенты делали, а cmd делали спецы из майкрософт

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

Ну здрасти. Причина по которой sh не может запустить crysis3.exe не в самой оболочке, а в ОС из которой он обычно запускается. Так например порт bash под windows замечательно запустит crysis3.exe, а cmd будучи перенесённым под другую ОС обломится с запуском.

anonymous
()

Use http://www.mingw.org/wiki/MSYS , Luke! И будет тебе вообще 99% «возможностей командной строки POSIX» на винде.

Вот я пользуюсь msys - очень приятно. Наверное можно для своего софта таскать, как это делает несколько программ что мне известны.

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)

cmd — это тот, который по-дефолту в оффтопике, если чо.

В каокм смысле «по дефолту»? Его что, уже можно заменить на другой?

NeverLoved ★★★★★
()

Кста, как можно забыть Cygwin?

cmd.exe - шлак, даже не думай пользоваться его возможностями для серьезных скриптов.

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от NeverLoved

как будто его там можно сменить

Я не понимаю, в чем проблема его заменить? лежит cmd.exe где-то в папке windows, удали его, и брось туда какой-нибудь другой. В чем проблема, поясни пожалуйста.

selena-gomes
() автор топика
Ответ на: комментарий от I-Love-Microsoft

md.exe - шлак, даже не думай пользоваться его возможностями для серьезных скриптов.

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

selena-gomes
() автор топика
Ответ на: комментарий от selena-gomes

Проблема в том, что на сам интерпретатор в оффтопике что-то может быть завязано, при чем при замене на другой - просто откажется работать.

CaveRat ★★
()

Толксы и general там →

bash и вообще bourne shell — не предел мечтаний

Bash is baroque. Bash is brittle. Bash is indispensable.

Bash was not designed.

It's not fair to say that bash has evolved either: it retains and utilizes all of its vestigial appendages.

© http://matt.might.net/articles/bash-by-example/

CMD, с другой стороны — заглушка вместо шелла. Им едва ли можно пользоваться всерьёз (TCC и тот лучше если уж на то пошло). Powershell — совершенно другое дело, но это тема отдельной высокоинтеллектуальной беседы.

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

Отсутствие исходников и документации по внутреннему устройству системы.

Каким образом отсутствие документации по внутреннему устройству системы и исходников может помешать бросить исполняемый фа йл в систему и пользоваться им? MS-WORD тоже невозможно установить на венду?

selena-gomes
() автор топика
Ответ на: комментарий от CaveRat

Проблема в том, что на сам интерпретатор в оффтопике что-то может быть завязано, при чем при замене на другой - просто откажется работать.

Да, но это не проблема интерпретатора, а проблемы софта, который на него завязан.

selena-gomes
() автор топика
Ответ на: комментарий от selena-gomes

Никогда не удаляй файлы винды, она этого не оценит. Установить другой и указать в реестре его — другое дело.

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

Никогда не удаляй файлы винды, она этого не оценит

Да это так же и nix'ов касается, особенно современных. Зависимостей никто не отменял.

selena-gomes
() автор топика

В cmd есть goto. +1 в его пользу.

phill
()

cmd и рядом не стоял с bash-ем. И непонятно, этот вопрос применительно к маздаю, или к Linux?

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

И непонятно, этот вопрос применительно к маздаю, или к Linux?

Почему он должен быть применительно к чему то? Хоть к жопе.

cmd и рядом не стоял с bash-ем

Аргументы.

selena-gomes
() автор топика
Ответ на: комментарий от selena-gomes

Что же такое, теперь ты опустил слово «заменить»? У каждого серьёзного лоровца должен быть крепкий внутренний стержень, так сказать.

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

Да, ещё интересно, что лучше ознакомиться со смыслом увиденного в интернете выражения, прежде чем его ввернуть.

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

Ты о чем говоришь? Это бредятина какая-то. Ты не сможешь заменить одну программу на другую, если от нее зависит третья. Это в любой системе было и будет. Набежали детсадовцы, епт, с крепкими стержнями, только не_просюцца. Хватит нести бред.

selena-gomes
() автор топика
Ответ на: комментарий от selena-gomes

Там у вас sfc, а я могу export SHELL=/bin/zsh, могу из zsh запустить ksh, могу указать юзеру в /etc/passwd шелл по умолчанию. Причем тут зависимости?

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

Его что, уже можно заменить на другой?

Вантузы хвалят некий PowerShell, но по мне он еще более уродлив и менее юзабелен, чем cmd.exe. К тому же psh на дохНЕТе и там больше программирования, чем шелла. По крайней мере встроенные конструкции имеют длинные имена и PascalCase (sic!).

Но тут нужно квалифицированное мнение Reset или cipher, ибо я всего-лишь вендо-хейтер.

P.S. да, UA и меня семёрочный, ибо заставляют.

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

Там у вас

У кого?

могу из zsh запустить ksh

могу запустить *все что угодно* из любого командного интерпретатора.

/etc/passwd

А причем тут sh? Сказал же, что системы не обсуждаются. Заканчивайте уже этот детский лепет. Либо обсуждаем возможности непосредственно интерпретаторов, либо идем мимо. Единственны йаргумент по теме, который я услышал, это про goto. Хватит разводить базар, я Вас умоляю.

selena-gomes
() автор топика
Ответ на: комментарий от selena-gomes

goto

а функции оно умеет? Там можно нечто подобное изобразить при помощи этого вашего goto, но функции как в sh - не видел.

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

больше программирования, чем шелла

А разве шелл (любой) это не интерпретатор ЯП?

И, да, Powershell - переусложненное говно, а вот cmd вроде так ничо, на первый взгляд.

phill
()

В cmd помню жутки проблемы при добавлении результатов выполнения команды в переменную из цикла.

Кажется там необходимо запускать cmd с каким то параметром, т.е. одним скриптом обойтись не получается, нужно как минимум 2.

ya-betmen ★★★★★
()
Ответ на: комментарий от yars068

Вообще-то, тут надо расставить приоритеты. Концептуально, функция — есть частный случай goto, и полностью выразима через goto, но не наоборот. Функция - это сахар, она вторична, посему, это можно считать недостатком. Если конечно не страдаешь дейкстрой головного мозга.

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

В каком из номеров Ксапера рассказывали о различных надстройках для расширения функциональности последнего сейчас уже не вспомню. Но вот

http://sourceforge.net/projects/console/ одна из альтернатив.

Хотя программно оно все равно,наверно,использует cmd.exe.

Twissel ★★★★★
()
Последнее исправление: Twissel (всего исправлений: 2)

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

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

Ну, выразима - это да, но некоторые вещи теряются, например область видимости переменных. Локальные в случае goto не объявить.
А как с проверкой условий? В cmd, насколько помню, можно, например, проверить только существование файла, для этого даже ключевое слово есть - exist. Впрочем, в маздайке нет специальных файлов, потому и нет ключевых слов для их проверок :) Ну а каталог от файла как там отличать?

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

например область видимости переменных

Ну так создай отдельный неймспейс и через него, ты думаешь, как локадьные неймспейсы ф-ций реализованы? Насчет проверок не в курсе, не силен в cmd, это я так, мимо проходил. Но, думаю, проблем там быть не должно, это достаточно тривиальные задачи.

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

давно ещё с dos 6.22?

COMANDSHELL (или чёт похожее) в config.sys

например прописывание nc

приводило к забавному превращению компа в печатную машинку с функциями ограниченными только встроенными опциями nc

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

это правда если есть возможность разимименовывать тем или иным путём значения в значения - наличия индексных переменных либо асоциативных ( $ и прочее запись и чтение в файлы) механизмов

если же предыдущего нет , то остаётся вариант полиморфного(самомодифицирующегося кода как частный случай в cmd

type %0 >> %0

как пример вайпера и нечто марковскоподобного алгорифма.

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

А разве шелл (любой) это не интерпретатор ЯП?

Да, но шелл должен больше ориентироваться на *работу с шеллом* чем на классическое программирование.

Именно по этому на баше (обычно) не пишут серьёзных проектов.

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

Ну а каталог от файла как там отличать

страдая. если ключей в текущей версии нет то call батника который пытаетcя зайти в папку и сохраняет в куда нибудь после этого текущий путь. который затем сравниваем.

qulinxao ★★☆
()

cmd это тихий ужас. Сжечь, вместе с исходниками.

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

cmd лучше, всем известно. А sh - написанное на коленке нечто. Студенты делали, а cmd делали спецы из майкрософт

STOP IT PLEASE

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