Я ищу кросс-платформенный скриптинг (язык) для 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 вещами (просто догадка).
Что вы используете?
ТИА
Межплатформенные скрипты для Windows, Linux, MacOS X
Ответ 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.