Утилита перекода поддерживает HTML как одну из кодировки. (Можно даже указать версию HTML.) В направлении текста к объектам это также повторно кодирует символы неASCII в объекты; необходимо указать корректное входное кодирование (например, ASCII, latin1, utf-8, …).
recode utf8:html output-file.txt
recode l1..html file-to-recode.txt
Это появляется :
s в Вашем сценарии используются вместо true
. Если grep
не находит соответствие в файле, это возвратит ненулевой код выхода; поскольку jw013 упоминает в комментарии, если errexit
установлен, вероятно, -e
на строке хижины сценарий вышел бы если любой из grep
s не удается найти соответствие. Очевидно, это не то, что хотел автор, таким образом, он добавил || :
заставить статус выхода из той конкретной составной команды всегда обнулить, как более общее (по моему опыту), || true
/|| /bin/true
.
:
встроенный также полезно с Bash, "присваивают значения по умолчанию" расширение оболочки, где расширение часто используется только для побочного эффекта, и расширенное значение выброшено:
# assign FOO=bar iff FOO is unset
: ${FOO:=bar}
Я могу думать о двух местах, которые я использовал :
в прошлом.
while :
do
shell commands
some exit condition
done
Это - навсегда-цикл.
function doSomethingStub {
:
}
Вставьте интерфейсную функцию, только для получения высокоуровневого потока корректного управления.
Одно использование я видел назад в Былые времена: Вместо a #!/bin/sh
(или безотносительно), строка, Вы видели бы a :
строка. Некоторые более старые Реальные ядра Unix или Реальные оболочки Unix использовали бы это, чтобы означать, что "я - сценарий оболочки, имею sh, выполняет меня". Как я вспоминаю, это было то, как раз в то самое время, когда csh предпринимал шаги как общую интерактивную оболочку.
Я, кажется, вспоминаю, что ранние версии оболочки не имели синтаксиса комментария. Строка, запускающаяся с :
(который, вероятно, был бы фактическим исполняемым файлом, подобным /bin/true
) была бы лучшая альтернатива.
Вот страница справочника для древней оболочки Thompson (никакое отношение); нет никакого упоминания ни о каком синтаксисе комментария.
:
был на самом деле индикатор маркировки для goto
команда, в некоторой древней оболочке (я не знаю который). Маркировка : something
мог действительно использоваться в качестве комментария, если бы не было никакого соответствия goto
. Практика, застрявшая даже после goto
исчезнувший.
– Gilles 'SO- stop being evil'
15.02.2012, 08:29
:
встроенный уже был в оболочке Thompson — она документируется для Unix V6 в 1975. В оболочке Thompson, :
обозначенный маркировка для goto
команда. Если Вы никогда не пытались звонить goto
на начале строки :
, та строка была эффективно комментарием.
Оболочка Bourne, предок Границы/POSIX окружает, поскольку мы знаем их, никогда не имел a goto
то, что я знаю о, но сохраненный :
как никакая-op команда (это уже присутствовало в Unix V7).
Я откопал старую ссылку: "Среда программирования UNIX" (c) 1984 Kernighan и Щукой.
Страница 147 (Программирование Shell) говорит это:
":" оболочка встроенная команда, которая действительно только оценивает ее аргументы и возвращает "true". Вместо этого [относящийся к примеру сценария], мы, возможно, использовали верный, который просто возвращает истинный статус выхода. (Существует также ложная команда.), Но ':' более эффективно, чем верный, потому что это не выполняет команду от файловой системы. [Курсив/акцент является моим.]
":" удобно для отладки.
DEBUGLOG=": debugfunction"
statement
statement
$DEBUGLOG arg1 arg2 ...
statement
statement
Выполнение обычно debugfunction никогда не выполняется так sh, просто переступает через noop (переменные, и подстановочные знаки расширены хотя). Если более подробно отладка требуется, удалите noop из переменной, и debugfunction называют с любыми аргументами, требуются.
Другое удобное использование как комментарий блока, который является недостающей возможностью от синтаксиса оболочки.
: << COMMENT
all --statements --in --here
are now -a here document which are
passed to --the noop
COMMENT
true
вместо этого, но семантическое намерение намного более ясно сtrue
.:
более подходит, когда явный NOP желаем. – jw013 27.04.2012, 09:12