Я ищу кросс-платформенный скриптинг для языков Windows, Linux, MacOS X. Я устал от .bat/bash.
Я хотел бы делать такие вещи, как, например ,, lock workstation '' при автоматическом входе в систему (у меня это было в X-Window, но решение было довольно уродливым, теперь я бы хотел, чтобы это на MS Windows, а не на уродливом: -)).
Как правило: автоматизировать задачи.
Или мне лучше с Windows Scripting Host?
PowerShell также приходит на ум, но это похоже на Windows-только для моего вкуса. Могут ли языки, подобные Python, Ruby, (Java?) Взаимодействовать (элегантно? Разумно?) С WSH?
Такие вещи, как DBUS, DCOM и т. Д., Приходят на ум как часть изображения.
В настоящее время я использую смесь Java, .bat, bash, Ruby, Scala; некоторые VBA для Excel. Который иногда становится довольно уродливым.
Я хотел бы получить кросс-платформенное общее решение с использованием/родственных деталей, близких к ОС. Как, например, Ruby управляет некоторыми специфичными для Windows вещами (просто догадка).
Что вы используете?
TIAмежплатформенный скриптинг для Windows, Linux, MacOS X
ответ
Я думаю, вы жонглируете на грани противоречивых: вы бы хотели независимой от платформы (похвальной), но также «близкой к специфике ОС».
Если, однако, вы уделяете немного больше внимания независимости платформы, я занимаюсь идеей использования groovy (более дружественного к Java родственника ruby) для сценариев общего назначения. Когда вам это нужно, вы получаете поведение, специфичное для ОС, путем вызова команд оболочки ОС.
Мотивация немного отличается: я считаю, что код groovy более надежный, чем у bash, хотя мне тоже понадобится хороший многоплатформенный скриптовый инструмент для проекта, который я разрабатываю.
Я бы использовал C# с Mono.
Это поражает меня как странный выбор для сценариев. В bash, например, вы показываете содержимое файла с 'cat file.txt'; в groovy с 'println new File (" file.txt "). text': сколько кода (+ компиляция) вы бы сделали с C#? C# может быть хорошим языком OO общего назначения, но одно, что не очень хорошо, это поддержка скриптов. –
Просто для справки (не подразумевая, что C# хорош для сценариев) в C# вы должны написать: File.ReadAllText («file.txt») в среде repl (который включен в mono: http: //www.mono-project .com/CsharpRepl) – Cohen
Как, например, Рубин вождения некоторые окна-конкретные вещи
It certainly can и на Ruby on Windows блоге вы можете найти много примеров, также есть глава в книге кирки и в humble один.
Вы можете написать свои сценарии в Tcl.
синтаксис прост и ближе к , что вы могли бы ожидать от сценария;
это кросс-платформенный и будет работать на всех основных платформах;
вы можете легко создавать простые графические интерфейсы для ваших скриптов в Tk, которые также будут работать повсюду и использовать собственные элементы управления;
для функций Windows, вы можете использовать Twapi (Win32 API ).
вы можете установить Tclkit, который является единственным файлом, являющимся полным распределением Tcl.Нет длительных процессов установки или скрытых файлов или таинственных каталогов;
- Вы можете легко установить linux, windows и mac runtime на один флеш-накопитель, чтобы у вас всегда был удобный переводчик, даже если локально не установлен.
Tcl также выигрывает, потому что вы можете установить Tclkit, который является единственным файлом, который является полным дистрибутивом Tcl. Нет длительных процессов установки или скрытых файлов или таинственных каталогов. Кроме того, вы можете легко установить linux, windows и mac runtime на один флеш-накопитель, чтобы у вас всегда был удобный интерпретатор, даже если он не установлен локально. И, конечно же, для программирования графического интерфейса вы получаете собственные виджеты. –
Perl и Python являются доступными почти на каждой платформе
Я огромный поклонник Lua:
Синтаксис неопределенно Pascal-подобный и хорошо работает в сценариях ,
Превосходное соотношение мощности к весу. Превосходная инженерия. Очень хороший дизайн.
Чрезвычайно переносимая на любую платформу с компилятором ANSI C.
поддержка GUI через wxLua и другие переплеты
Некоторая поддержка для сокрытия различий ОС в общих задач, например, файловая система Lua дополнения
ядро системы и библиотеки достаточно, что просто вы можете понять все того, что вы используете, но по-прежнему имеют отличное плечо по сравнению с bash/bat. Выразительная сила сравнима с Python или Ruby.
Вы не переполнены библиотеками и фреймами, которые могут быть плюсом или минусом.
отличное книга: Roberto Ierusalimschy's Programming in Lua; вы можете получить previous edition free online.
Performance бьет Tcl, Perl, Python, Ruby
Для еще более высокой производительности на платформе х86, есть LuaJIT.
Наконец, и это туз в рукаве: если вы столкнулись с какой-либо проблемы конкретной платформы, то легко написать платформо-зависимый код C и загрузить его в сценарий Lua динамически. Lua был разработан с учетом этой задачи и делает это очень хорошо. Вы также можете легко окунуться в C для повышения производительности (например, вычислить контрольную сумму MD5).
За последние 3 до 5 лет, я постепенно мигрирующие скрипты Баш/КШ/AWK/СЭД/Grep/Perl в Lua. Я был очень доволен результатами.
есть возможность для 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
Я надеюсь, что это поможет!
Не уверен, что, если вам все еще нужно, но если это так, попробуйте муравей (http://ant.apache.org/). Это перекрестная платформа «язык скриптов». В принципе, файл ant - это xml-файл, интерпретируемый программой JVM.
Вы можете попробовать Batsh
Батш является простым языком программирования, который компилируется в Bash и Windows, Batch. Это позволяет вам писать свой сценарий, когда он запускается на всех платформах без какой-либо дополнительной зависимости.
- 1. WinRM-скриптинг из Linux
- 2. Графическое приложение в Windows, Linux, MacOS
- 3. SVN с использованием MacOS, Linux и Windows
- 4. Межплатформенный интерфейс сканера Python
- 5. Межплатформенный родной/управляемый интерфейс
- 6. Встраиваемый межплатформенный веб-браузер?
- 7. Замена для MS _vscprintf на MacOS/Linux?
- 8. Обнаружение MacOS, iOS, Windows, Android и Linux ОС с JS
- 9. Linux в качестве гостя на MacOS X: VirtualBox или Parallels?
- 10. Macos x Ярлыки приложения
- 11. MacOS X странно питон
- 12. QtOpenGL и MacOS X - рендеринг программного обеспечения?
- 13. Программирование MacOS-X и Linux API - совместим с POSIX?
- 14. межплатформенный самомодифицирующийся код (только для Intel/AMD)
- 15. Межплатформенный путь для простой двоичной (исполняемой) самопроверки
- 16. Какие Emacs ... для Mac OS X? ... для Windows? ... для Linux?
- 17. Интерфейс Cocoa для MacOS X Keychain
- 18. Как создать установщик перетаскивания для MacOS X?
- 19. Какой самый межплатформенный дружественный язык кодирования?
- 20. ошибка SED команды на MacOS X
- 21. Все одинаковые местоположения «-1» на MacOS X
- 22. Как перекрестно компилировать пакеты R для MacOS из среды Linux?
- 23. Несоответствие pg_dump на MacOS X
- 24. Межсайтовый скриптинг для инъекций
- 25. Python-скриптинг для XBMC
- 26. basic pyinstaller на MacOS X
- 27. Улучшение производительности mmap/munmap на MacOS X
- 28. Установить valgrind в MacOS X
- 29. MacOS X: неожиданное поведение glGenFramebuffers()
- 30. Наблюдатель файловой системы MacOS X
Спасибо. О предполагаемой «противоречивости»: как правило, кросс-платформенный, но способный интегрировать (вызвать в) ОС-специфику, ну. Это не так редко. – KarolDepka
У меня появилось ощущение, что вы склоняетесь к чему-то лучшему, чем комбинация команд ruby + shell, о которых вы упомянули: вот что я имел в виду. Я просто сказал, что вряд ли вы найдете что-то лучше этого. –
Groovy хорош, но медленный запуск jvm делает java не стартером для коротких скриптов IMO. –