У всех нас есть задачи, которые время от времени возникают, и мы думаем, что лучше было бы использовать скрипты или автоматизацию, чем делать это вручную.
Очевидно, что некоторые инструменты или языки лучше для этого, чем другие - никто (в здравом уме) не делает единственную работу по перекрестной ссылке на кучу текстовых списков, которые их PM только что дал им в ассемблере, например.
Какой инструмент или язык вы бы порекомендовали для общих быстрых и грязных заданий, которые вас просят выполнить, где время (а не элегантность) имеет значение?
Предыстория: я бывший программист, а теперь менеджер по разработке PM и хочу выучить новый язык для удовольствия. Если я собираюсь научиться чему-то для удовольствия, я бы хотел, чтобы это было полезно, и такой вариант использования наиболее вероятен.
источник
Ответы:
питон
Очевидный ответ (и не без оснований) - это Python. Это солидный язык, доступный кроссплатформенный. В качестве его динамики вы можете запустить его в интерактивном режиме, что отлично подходит для объединения вещей, и у него довольно большой выбор библиотек, так что это язык общего назначения, поэтому его можно применять для большинства задач.
источник
Autoit непобедим. Это инструмент с языком.
источник
AutoHotKey
AutoHotkey - бесплатная утилита с открытым исходным кодом для Windows. С его помощью вы можете:
http://ahkscript.org/
Я сэкономил нескольким компаниям большую сумму денег с помощью этого инструмента.
источник
Perl
Perl в значительной степени мое определение быстрых и грязных.
Perl бесконечно гибок, что является сильной и слабой стороной. Это не навязывает вам структуру, но она есть, если вы этого хотите. У него есть библиотеки для всего. Он широко использовался в течение 20 лет; есть куча кода для работы.
источник
$=
; $ _ = \% !; $ _) = / () /; $ == ++ $ |;.. ($, $ /, $ ,, $ \, $», $;, $ ^, $ #, $ ~ $ *, $ (.). (.) (.) (.) (.) (.) (.) (.) (.), @%) = (!. $ = ~ / () .. .. ... ....) /, $ "), $ = ++; $ ++;. $ ++;. $ _ ++; $ _ ++; ($ _, $ \, $) = ($ ~ . " "$ $, $ / $% [? $] $ _ $ \ $, $: $% [$?]", $" & $ ~ $ #,); $, ++; $ + +; $ ^ | = $ ";$_$\$,$/$:$;$~$*$%[$?]$.$~$*${#}$%[$?]$;$\$"$^$~$*.>&$=
(это фактический Perl - по общему признанию, преднамеренно плохой Perl - для тех, кто его не читает).Powershell
Это менее универсально, чем Python - но если вы существуете в среде Windows, то, вероятно, это будет более полезным.
Он больше похож на оболочку / скрипт, чем на Python (потому что это то, что он есть), но он может подключиться к платформе .NET, что дает вам весьма необычайную глубину возможностей. Он также имеет широкую поддержку сообщества.
Microsoft были заняты , добавив к их PowerShell серверных продуктов (отсюда и «более полезным») и ввели ремоутинга , чтобы позволить вам запускать скрипты там с вашей консоли здесь .
источник
Современная оболочка Unix. Например, Баш.
источник
elisp, если вы видели множество задач, которые он использует для выполнения своей базовой платформы Emacs. Emacs может отказаться от всех функций полнофункционального оконного менеджера, IDE, Office, браузера, почтового клиента, клиента чата, оболочки, проводника файловой системы и многого другого. Большая часть этого достигается через программы elisp.
источник
Для некоторых задач, действия могут быть хорошим выбором.
Он имеет своего рода процесс потоковой диаграммы, где вы можете добавить,
actions
чтобы запускаться последовательно. Новоеactions
можно написать в Java.Отказ от ответственности: я еще не использовал его.
источник
Для комплексной автоматизации вы можете использовать Robot Framework . Фреймворк в основном предназначен для автоматического тестирования, но также может использоваться для общей автоматизации.
Вы можете легко написать свои собственные библиотеки на Python, и есть несколько уже существующих библиотек (selenium, AutoIt , telnet, ssh, swing и т. Д.), Которые позволяют вам управлять всеми видами вещей, что очень эффективно, если вы находитесь в смешанная среда.
Он управляется ключевыми словами, поэтому вы можете создавать новые ключевые слова и, следовательно, абстрагироваться от повторяющихся задач, и даже имеет IDE, которая активно разрабатывается, что позволяет выполнять некоторые простые рефакторинги.
источник
Я работал над объединением некоторых подпрограмм Common Lisp, чтобы помочь с написанием сценариев, но он не так прост для этой задачи, как Perl.
источник
Для Windows я настоятельно рекомендую AutoIt (http://autoitscript.com). Обязательно установите пакет Scite из раздела загрузок.
http://autoitscript.com/forum - отличный ресурс для получения помощи и поиска функций UDF для включения в сценарии.
AutoIt может контролировать окна приложений и элементы управления, позволяя автоматизировать практически все. Это также не требует никаких зависимостей после компиляции исполняемого файла.
источник
У меня была одна и та же проблема использования нескольких языков для разных наборов автоматизации. Я старший консультант в компании IT Service в Индии. Каждый раз, когда я консультируюсь с другим
Язык для этой цели, мне было трудно оправдать это руководство . Я даже обсуждал со своими друзьями (в качестве обычной беседы) разработку единого языка, который отвечал бы всем требованиям автоматизации и все еще был кроссплатформенным. Если один доступен, то он может
изменить мир сценариев. Насколько я знаю, мы обычно используем отображение
Языки и область использования
AutoIT - Windows GUI Automation Bash - Unix автоматизация в основном включает в себя взаимодействие с системой Perl - автоматизация обработки данных с меньшим количеством системных взаимодействий Expect - символьные интерактивные требования. (что не может быть решено с помощью Perl, Bash) VBS - Windows-скриптинг
Любая автоматизация всегда сопровождается одним или несколькими удаленными вызовами для поиска информации или публикации результатов. Вот другой список адресов основных ОС.
Удаленный вызов скрипта (инструменты)
Windows -> Windows
psexec, Powershell
Windows -> Unix
Плинк, Квест Плинк -> SSH Сервер
Unix -> Unix
SSH клиент -> SSH сервер
Unix -> Windows
winexe, wmic -> Агент WMI check_nrpe -> Агент NRPE_NT
В приведенном выше списке вы можете легко понять, что ни один язык не может заменить другой в наборе функций. Мы должны жить с ними, пока у нас не будет единой универсальной ОС и универсального стандарта протоколов связи и API.
источник
Python отлично подходит для этого и имеет большую установочную базу, а Ruby ничуть не лучше, за исключением того, что в нем есть « Почему Poignant Guide to Ruby» . Серьезно, мультипликационные лисы.
источник