все команды shell-скрипта в пакетных командах переносимы? - PullRequest
1 голос
/ 13 сентября 2010

Я не пользователь Linux (да, я извиняюсь!), И мой друг попросил меня перенести его сценарий оболочки для Linux в пакет для Windows, потому что он хочет выполнить там ту же задачу.

Раньше я не работал со скребками, и мои навыки работы с пакетами, хммм, почти не существуют, но я хотел бы попробовать это.все функции оболочки в пакете.

заранее спасибо,

Андреас

Ответы [ 4 ]

0 голосов
/ 13 сентября 2010

Ответ на вопрос: нет, не все команды сценариев оболочки работают в пакетных файлах Windows.

Но это не значит, что скрипт не может быть перенесен в Windows. Есть много языков, которые могут быть использованы для получения желаемых результатов. Первым шагом является определение необходимого вывода и типов выполняемых операций, затем вы можете определить, какой язык лучше всего подходит для этой задачи.

Если вы хотите сохранить две версии программы, вы можете использовать C, C ++, AutoIt, C #, VB.Net и т. Д. Для написания версии только для Windows.

ИЛИ вы могли бы посмотреть на перенос существующего сценария оболочки, уже написанного в Linux, на такой язык, как Ruby, Python или Perl - и тогда он с большей вероятностью будет работать как в Linux, так и в Windows с гораздо меньшими изменениями.

0 голосов
/ 13 сентября 2010

Пакетные и командные сценарии (bash и т. Д.) Не совпадают. Единственный лучший способ сделать это - изучить batch / vbscript и shell, а затем преобразовать их вручную. Или вы можете установить cygwin или GNU win32 . Это поможет вам запустить ваши сценарии оболочки в Windows, но вам, возможно, придется внести некоторые изменения, в зависимости от того, что написано.

0 голосов
/ 13 сентября 2010

Короче, нет.Хотя концептуальное написание сценариев оболочки и командных файлов схожи, синтаксис и команды совершенно разные.Например, общая команда в bash cat - это type в Windows и т. Д. В целом, однако, команды DOS должны иметь эквиваленты в Linux.

Ваш скрипт не будет работать в Linux.Если ваш друг использует bash (скорее всего, он это делает), тогда вы можете взглянуть на некоторые учебные пособия и документацию, чтобы «перевести» его скрипт в Windows, почти так же, как если бы вы перевели кусок кода, написанный на C, на Pythonсовершенно другой язык с другим синтаксисом, но с множеством общих черт.

Вот отличный учебник, который я использовал для изучения sh, язык, на котором написаны скрипты bash-оболочки., но если вы можете писать сценарии в пакетном режиме, большинство из них должно иметь для вас смысл.

Если вы хотите узнать, что за команда используется в bash, документацию и справочное руководство можно найти здесь .

Если вам нужна конкретная помощь с чем-то из сценария, опубликуйте это, и я уверен, что кто-то скажет вам, что вам нужно сделать.

0 голосов
/ 13 сентября 2010

Пакетные команды - это .BAT, которые выполняются процессом CMD в Windows.

Сценарии оболочки Linux - это мир и порода, кроме BATCH .. в зависимости от запуска сценария Linux #!/bin/xxxxx где xxxxx может быть bash, csh, korn, zsh, ash ....

Возможно, вам лучше заглянуть в PowerShell (Monad) под Windows, чтобы добиться того же. Еще одна ссылка на PowerShell здесь. Загляните на сайт PowerShell Scripting Guy .

Использование Powershell для создания эквивалента сценария оболочки Linux - вы можете использовать его… Альтернативное понятие и концепция - использовать AutoIt функциональность сценариев, которая похожа на BASIC ....

Единственное, что нужно иметь в виду, это то, что многие функции сценария оболочки могут ссылаться на другие команды linux, которых нет в Windows ... в зависимости от сложности сценария могут быть замены для команды linux (если любой) к команде Windows.

Это может помочь опубликовать сценарий целиком ...

...