Подтвердить что ты не робот

Межплатформенные скрипты для Windows, Linux, MacOS X

Я ищу кросс-платформенный скриптинг (язык) для Windows, Linux, MacOS X. Я устал от .bat/bash.

Я хотел бы делать такие вещи, как например: "Заблокировать рабочую станцию" при автоматическом входе в систему (у меня это было в X-Window, но решение было довольно уродливым, теперь я бы хотел, чтобы это на MS Windows, а не на уродливом:-)),
Как правило: автоматизировать задачи.

Или мне лучше с Windows Scripting Host?
PowerShell также приходит на ум, но это кажется Windows-только для моего вкуса. Могут ли языки, подобные Python, Ruby, (Java?) Взаимодействовать (элегантно? Разумно?) С WSH?

Также такие вещи, как DBUS, DCOM и т.д., Приходят на ум как часть изображения.

В настоящее время я использую смесь Java,.bat, bash, Ruby, Scala; некоторые VBA для Excel. Который иногда становится довольно уродливым.

Я хотел бы использовать кросс-платформенное общее решение с/использованием родных частей, близких к ОС-специфике. Как, например, Ruby управляет некоторыми специфичными для Windows вещами (просто догадка).
Что вы используете?
ТИА

4b9b3361

Ответ 1

Я думаю, что вы жонглируете на грани противоречивости: вы хотели бы независимость от платформы (похвально), но также "близко к специфике ОС".

Если, однако, вы уделяете немного больше внимания независимости платформы, я занимаюсь идеей использования groovy (более дружественного к Java относительного рубина) для сценариев общего назначения. Когда вам это нужно, вы получаете специфичное для ОС поведение, вызывая команды оболочки ОС.

Моя мотивация немного отличается: я нахожу код groovy более надежным, чем код bash, хотя мне тоже понадобится хороший многоплатформенный скриптовый инструмент для проекта, который я разрабатываю.

Ответ 2

Я большой поклонник Lua:

  • Синтаксис нечетко похож на Pascal и хорошо работает в скриптах.

  • Превосходное соотношение мощности к весу. Превосходная инженерия. Очень хороший дизайн.

  • Чрезвычайно переносимый на любую платформу с компилятором ANSI C.

  • Поддержка GUI через wxLua и другие привязки

  • Некоторая поддержка скрытия различий ОС в общих задачах, например, надстройка Lua File System

  • Основная система и библиотеки достаточно просты, чтобы вы могли понять все того, что вы используете, но все же имеете отличное плечо по сравнению с bash/bat. Выразительная сила сравнима с Python или Ruby.

  • Вы не перегружены библиотеками и фреймворками, которые могут быть плюсом или минусом.

  • Есть отличная книга: Roberto Ierusalimschy Программирование в Lua; вы можете получить предыдущую версию бесплатно онлайн.

  • Производительность превосходит tcl, perl, python, ruby ​​

  • Для еще более высокой производительности на оборудовании x86 существует LuaJIT.

  • Наконец, и это туз в дыре: если вы столкнетесь с какой-либо спецификой для платформы, легко написать код C-кода, специфичный для платформы, и динамически загружать его в Lua script. Lua был разработан с учетом этой задачи и делает это очень хорошо. Вы также можете легко окунуться в C для производительности (например, вычислить контрольную сумму MD5).

В течение последних 3 - 5 лет я постепенно переводил сценарии из bash/ksh/awk/sed/grep/perl в Lua. Я был очень доволен результатами.

Ответ 3

Вы можете попробовать Batsh

Batsh - простой язык программирования, который компилируется в Bash и Windows Batch. Это позволяет вам писать ваши script однократные прогоны на всех платформах без каких-либо дополнительных зависимостей.

Ответ 4

Вы можете написать свои сценарии в Tcl.

  • синтаксис прост и приближен к что вы ожидаете от script;

  • он кросс-платформенный и будет работать на всех основных платформах;

  • вы можете легко создавать простые графические интерфейсы для своих скриптов в Tk, которые также будут работать повсюду и использовать собственные элементы управления;

  • для функций, специфичных для Windows, вы можете использовать Twapi (Win32 API привязок).

  • вы можете установить Tclkit, который является единственным файлом, который является полным дистрибутивом Tcl. Нет длительных процессов установки или скрытых файлов или таинственных каталогов;

    • вы можете легко установить linux, windows и mac runtime на один флеш-накопитель, чтобы у вас всегда был удобный интерпретатор, даже если он не был установлен локально.

Ответ 5

Perl и Python доступны практически на всех платформах

Ответ 6

Как, например, Ruby управляет некоторыми специфичными для Windows вещами

Это, безусловно, может и на Ruby on Windows в блоге вы можете найти множество примеров также есть глава в книге Пикакс и в humble one.

Ответ 7

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

Для систем UNIX вы можете использовать это:

#!/bin/sh

TYPE=`uname`;
echo 'this is ' ${TYPE};

if [ ${TYPE} = HP-UX ]
   then bdf /var;
elif [ ${TYPE} = Linux ]
   then df -h /var;
elif [ ${TYPE} = FreeBSD ]
   then df -k /var;
else echo "Unsupported OS - ${TYPE}"
fi

Надеюсь, это поможет вам!

источник

Ответ 8

Не уверен, что вам все еще нужно, но если да, попробуйте ant (http://ant.apache.org/). Это кросс-платформа "script язык". В принципе, файл ant представляет собой XML файл, интерпретируемый программой JVM.

Ответ 9

Я бы использовал С# с Mono.