Насколько полезный/трудный это было бы, чтобы я изучил сценарии оболочки Linux? Альтернативные рекомендации?

Вы меняете область действия своей функции beforeShowMonth.

Попробуйте вместо этого использовать функции стрелок

beforeShowMonth: (date: Date) => 
  this.isInArray(this.datepickerRange, date.getDate())

Функции стрелок поддерживают область видимости окружающего объекта. Вы можете прочитать больше об этом здесь

12
задан Joel Coehoorn 9 December 2011 в 19:01
поделиться

9 ответов

Походит на прекрасный план. Некоторые предложения:

  1. Учитесь автоматизировать все, что Вы можете. Сделайте это привычкой. Если Вы делаете что-то большее чем пару раз, поместите его в сценарий. Это не должно только стараться не вводить, но и документировать процесс. Улучшите свои сценарии, поскольку Вы замечаете проблемы. Совместно используйте свои сценарии в надлежащих случаях.

  2. Изучите питание конвейерной обработки. Узнайте цель xargs команда. Перепишите стандартную утилиту командной строки как grep или sort на языке по Вашему выбору. (Я неравнодушен к Perl, но это почти обманывает.;-)

  3. Настройте Ваш .bashrc файл. Знайте, какие настройки Вы любите и которые не работают на Вас.

  4. Использовать ksh вместо bash для сценариев. Нет многих различий, но ksh имеет несколько дополнительных функций, которые очень хороши иметь. Я предпочитаю bash для интерактивных оболочек, как бы то ни было.


Кажется, что другие ответы предлагают фокусироваться на "реальных языках программирования". Я не скажу, что это - плохой совет, но по моему опыту слишком мало программистов хорошо использует командную строку. По карьере хорошее использование сценариев оболочки сохраняет бесчисленные часы и много скуки.

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

Теперь для различения наши операции и тестирование мы используем две различных учетных записи. Таким образом, прежде, чем поместить систему в операции, мы вычищаем определенные файлы, сгенерированные учетной записью тестирования. В основном это - два процесса шага:

  1. Найдите все файлы созданными пользователем тестирования.

  2. Сдуйте их.

Я предполагаю, что мне потребовалась бы минута или два для написания кода, чтобы сделать это в Perl и еще несколько минут для тестирования его. Это - простое задание. Я даже не уверен, как пойти об этом в C/C++. Я думаю, что Вы запустили бы с a stat из корневого каталога.

Но все, кто освоил сценарии оболочки, подпрыгивают, махая их руками и выкрикивая ответ, потому что можно написать код во время, которое требуется для ввода его:

$ find /data -user test | xargs rm -rf

Тестирование состоит из выполнения команды и наблюдения за ошибками. Этой конкретной проблемой является подача софтбола прямо в рулевой рубке для bash. Perl сделал задание, но это немного менее естественно. (Я использовал бы find2perl, который просто добавляет шаг.) Делающий попытку этого в C или C++ были бы донкихотские поиски. Те языки разработаны для решения различных проблем.

Теперь, если Вы не работаете в среде UNIXy, существует, вероятно, набор инструментов, разработанный для того, чтобы сделать этот вид вещи. (Я не эксперт, но в Windows I, вероятно, запустил поиск для получения всех файлов в одном окне, выбирают все и удаляют. Очень почти как легкий. Я не знаю, как автоматизировать его, как бы то ни было.), Но если Вы планируете нахождение задания в мире UNIX/Linux, необходимо быть знакомы с командной строкой так, чтобы Вы не занимали 5 минут, чтобы сделать 30 вторых работ.

13
ответ дан 2 December 2019 в 06:27
поделиться

Сценарии Shell главным образом бесполезны. Я - парень Linux, и я могу записать сценарий оболочки, если бы я имею к, но любая задача, для которой был бы обычно нужен сценарий оболочки, может быть сделана более подобным программисту способом в Python. При необходимости в большом количестве сценариев можно факторизовать часть более полезного кода в классы, которые могут быть совместно использованы и использованы несколькими сценариями. Сценарии Python выполнят порядки величины быстрее, чем чистые дубликаты оболочки. Я нахожу, что синтаксис сценария оболочки (Bash, например) не поддерживает достойные структуры данных. Даже Perl является улучшением по сравнению с чистыми сценариями оболочки.

Если Вы надеетесь расширяться, Ваши горизонты учат различные языки программирования и парадигмы. Если Вам преподавали с Java, учите динамический язык как Python или Perl и низкоуровневый язык как C или Паскаль. Если Вы записали приложения CLI, запишите приложение, которое имеет уровень GUI. Если Вы только изучили, как записать традиционные настольные приложения, запишите, что база данных поддержала веб-приложение.

О, да, изучите JavaScript. Это - вероятно, единственный язык, который каждый программист должен знать в целях карьерного роста.

4
ответ дан 2 December 2019 в 06:27
поделиться

Сделайте то, что интересует Вас - если сценарии Linux и оболочки включают Вас - выполненный с ним. Хотя в эти дни существует много проспектов, чтобы учиться кодировать в Windows или OS X или любой другой операционной системе. Можно загрузить любое из следующих бесплатно на нескольких платформах.... PHP, Ruby, SQL Server, Oracle, Java, C, C#.... и Google (и конечно ТАК) имеют все, в чем Вы нуждаетесь с точки зрения документации для любой проблемы, с которой Вы сталкиваетесь.

Вы абсолютно правы - "практический" аспект - действительно все, что имеет значение - и он вполне несколько отличается, чем Ваша школьная работа. Вы правы надеяться делать проекты самостоятельно - это - единственный способ действительно достать вокруг этого материала. И поскольку Вы делаете, это - удостоверяется, что Вам на самом деле нравится делать его - не только идея сделать его..., потому что это имеет тенденцию брать большое терпение....

3
ответ дан 2 December 2019 в 06:27
поделиться

Ну, с хорошим пониманием Информатики так называемое "практическое программирование" не настолько трудно изучить. Нельзя сказать там не очень для изучения; однако, наличие мастерства Информатики подразумевает, в сущности, что изучение различных языков программирования не будет очень трудным. Вы взяли курс Операционных систем уже? В противном случае необходимо забрать так называемую книгу Динозавра и начать изучать ее. Программирование Bash очень просто. Необходимо учить языки как C и т.д; программирование оболочки довольно тривиально по сравнению с ними. Хотя, важно учиться. Если Вы не взяли Операционные системы, то, конечно, Вы как отделитесь своего градуса, если Ваша программа будет достойна. В том курсе необходимо пройти много упражнений, и даже реализация собственной простой оболочки является очень общим вводным проектом.

Так или иначе, верный запуск, узнающий о Linux. Найдите классический HowTos на Bash, программировании Ядра, и т.д. До, как реалистичный... Я ожидаю, что все студенты CS поймут все эти понятия строго. Я не позволил бы студенту получать его градус без него!

1
ответ дан 2 December 2019 в 06:27
поделиться

Если бы Вы собираетесь быть программистом, я предложил бы придерживаться Вашего основного языка и изучить различные библиотеки и платформы, которые идут с ним. Сценарии Bash чрезвычайно полезны, но они будут использоваться главным образом для системного администрирования.

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

hth

1
ответ дан 2 December 2019 в 06:27
поделиться

Почему Вы хотели бы потратить впустую много своего времени, изучая сценарии оболочки? Когда-то давно я был ведущим устройством его и записал все системы с sh сценариями, но это было перед жемчугом и другими языками сценариев. sh является ужасным языком, который поощряет дурные привычки и не пользуется спросом. Изучите только минимальные основы - что можно получить от одного или двух чтений sh страницы справочника. Затем изучите что-то полезное - жемчуг и Python являются хорошими ставками для кого-то с ограниченными по времени ресурсами.

1
ответ дан 2 December 2019 в 06:27
поделиться

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

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

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

0
ответ дан 2 December 2019 в 06:27
поделиться

Я настоятельно рекомендую жемчуг любому, кто использует Linux в качестве инструмента для легче жизни автоматизации и создания. С жемчугом можно записать быстрые и легкие программы, которые на самом деле выполнят реальную задачу за небольшое количество времени. Python является хорошей альтернативой и обрабатывает объекты намного лучше, хотя он отклоняется далеко от стиля C, и я предполагаю, что это - то, с чем была большая часть Вашего опыта.

0
ответ дан 2 December 2019 в 06:27
поделиться

Я определенно предложил бы, чтобы Вы изучили, по крайней мере, основы C/C++ для получения понимания того, как работают компьютеры.

Необходимо также изучить основы C# или Java для приобретения знаний об управляемом мире и понятиях как сборка "мусора", байт code/IL, компиляция монеты в пять центов.

Необходимо, по крайней мере, поглядеть в Ruby и направлении Python для получения познакомивший с идеей динамических языков.

Добавьте направляющие, PHP или ASP.NET для понимания о веб-программировании и понятиях как MVC.

Читайте о поблочном тестировании, разработке через тестирование, внедрении зависимости / инверсия управления, ORM. Сделайте себя удобными в мире управления исходным кодом и непрерывной интеграции. По крайней мере, проверьте модные словечки Википедии как гибкий, толпа, наклон и kanban.

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

Это все очень важные аспекты сегодняшнего поля программирования.

Где точно делает Bash, вписывается во все это, я не уверен. Это может быть очень полезным инструментом и может сделать Ваши ежедневные задачи вполне легче, но так может вполне партия другие инструменты. Однако я не обязательно думаю, что Bash будет полезен, чтобы учить Вас очень современному программированию и подготовить Вас к сиделке как разработчик программного обеспечения.

С другой стороны я лично не знаю много о Bash сам, поэтому возможно, я полностью неправ...

0
ответ дан 2 December 2019 в 06:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: