Вывести содержимое веб-ресурса на экран
Понадобилось скачать исходник на Java из Сети, причем в консольном режиме. Решение простое: команда
выведет поток не в файл, а на экран. Только вот вспомогательный аутпут wget'а всё дело портит:
Наверно, у этой утилиты есть ключи, позволяющие подавить ненужный текст, но мне, почему-то, подумалось, что он направлен в поток сообщений об ошибках, т.е. всё на ту же консоль. Предчувствия не обманули:
Юниксвей, фигли.
wget -O - http://docs.oracle.com/javase/jndi/tutorial/ldap/connect/src/Timeout.java
выведет поток не в файл, а на экран. Только вот вспомогательный аутпут wget'а всё дело портит:
$ wget -O - http://docs.oracle.com/javase/jndi/tutorial/ldap/connect/src/Timeout.java
--2012-05-03 18:54:32-- http://docs.oracle.com/javase/jndi/tutorial/ldap/connect/src/Timeout.java
Resolving docs.oracle.com... 77.109.171.186, 77.109.171.152
Connecting to docs.oracle.com|77.109.171.186|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2514 (2.5K) [text/plain]
Saving to: `STDOUT'
0% [ ] 0 --.-K/s
/*
* "@(#)Timeout.java 1.1 02/11/01 SMI"
*
* Copyright 2002 Sun Microsystems, Inc. All Rights Reserved.
* и т.д.
Наверно, у этой утилиты есть ключи, позволяющие подавить ненужный текст, но мне, почему-то, подумалось, что он направлен в поток сообщений об ошибках, т.е. всё на ту же консоль. Предчувствия не обманули:
$ wget -O - http://docs.oracle.com/javase/jndi/tutorial/ldap/connect/src/Timeout.java 2>/dev/null
/*
* "@(#)Timeout.java 1.1 02/11/01 SMI"
*
* Copyright 2002 Sun Microsystems, Inc. All Rights Reserved.
*
* Sun grants you ("Licensee") a non-exclusive, royalty free,
* license to use, modify and redistribute this software in source and
* binary code form, provided that i) this copyright notice and license
Юниксвей, фигли.
- —
- 03 мая 2012, 23:05
- комментировать
Бесконечное тестирование
При написании скриптов часто приходится многократно запускать их после правки. Для облегчения этой задачи можно запускать скрипт в бесконечном режиме:
Остается только нажимать Enter после каждой итерации.
while read ; do python <script> ; done
Остается только нажимать Enter после каждой итерации.
- —
- 24 февраля 2012, 09:24
- комментировать
Vim в режиме автомата
Vim, в отличие от, скажем, sed — интерактивный редактор. Предполагается, что человек открывает файл и что-то там вручную правит. Но можно, оказывается, использовать vim (и даже vi) и в скриптах:
Эта команда откроет файл foo, удалит 5-ю строку, сохранит и закроет. Всё, конечно же, «молча». Думаю, в некоторых bash-скриптах, где sed требует слишком сложных выражений, это свойство можно эффективно использовать.
vi +5d +wq foo
Эта команда откроет файл foo, удалит 5-ю строку, сохранит и закроет. Всё, конечно же, «молча». Думаю, в некоторых bash-скриптах, где sed требует слишком сложных выражений, это свойство можно эффективно использовать.
Подсветка синтаксиса на html-страничках
Проблема известная и решается множеством способов. Один из них — JavaScript-библиотека SHJS, о которой говорят: «This shjs supports more languages than the others I have seen». Вот так она подключается к html:
Вот так выглядит в браузере:
Можно настроить разные стили (emacs, vim и десятки других).
<html>
<head>
<meta charset="utf-8">
<script type="text/javascript" src="js/sh_main.min.js"></script>
<script type="text/javascript" src="js/lang/sh_java.min.js"></script>
<link type="text/css" rel="stylesheet" href="css/sh_vim-dark.css">
</head>
<body onload="sh_highlightDocument();">
<pre class="sh_java" style="width: 724px; height: 440px; font-size: 12pt;">
public class Y extends X {
/* Комментарии тоже подсвечиваются */
public static void main(String[] args){
System.out.println("Hello, World!");
}
}
</pre>
</body>
</html>
Вот так выглядит в браузере:
Можно настроить разные стили (emacs, vim и десятки других).