Вывести содержимое веб-ресурса на экран

Понадобилось скачать исходник на Java из Сети, причем в консольном режиме. Решение простое: команда

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


Юниксвей, фигли.

Бесконечное тестирование

При написании скриптов часто приходится многократно запускать их после правки. Для облегчения этой задачи можно запускать скрипт в бесконечном режиме:

while read ; do python <script> ; done


Остается только нажимать Enter после каждой итерации.

Vim в режиме автомата

Vim, в отличие от, скажем, sed — интерактивный редактор. Предполагается, что человек открывает файл и что-то там вручную правит. Но можно, оказывается, использовать vim (и даже vi) и в скриптах:

vi +5d +wq foo


Эта команда откроет файл foo, удалит 5-ю строку, сохранит и закроет. Всё, конечно же, «молча». Думаю, в некоторых bash-скриптах, где sed требует слишком сложных выражений, это свойство можно эффективно использовать.

Подсветка синтаксиса на html-страничках

Проблема известная и решается множеством способов. Один из них — JavaScript-библиотека SHJS, о которой говорят: «This shjs supports more languages than the others I have seen». Вот так она подключается к html:


<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 и десятки других).