Должен это быть awk
? Намного легче на других языках, где сменная деталь замены может быть вызовом функции. Например, perl
:
perl -pe 'sub c{$s=shift;$s=~s/BAR|WIBBLE|ME/FOO/g;$s}s/\[.*?\]/c$&/ge'
Lynx
имеет режим «Дамп», который вы можете использовать с Watch
:
$ watch lynx https://www.google.com -dump
из Man Lynx
:
-dump dumps the formatted output of the default document or those
specified on the command line to standard output. Unlike
interactive mode, all documents are processed. This can be used
in the following way:
lynx -dump http://www.subir.com/lynx.html
Files specified on the command line are formatted as HTML if
their names end with one of the standard web suffixes such as
“.htm” or “.html”. Use the -force_html option to format files
whose names do not follow this convention.
Это Задать вопрос Ubuntu имеет еще много вариантов.
W3M
- это другая программа, которая имеет - вариант
.
Это самый популярный веб-браузер Backend Emacs.
Заменить:
if [ "$choice"==1 ]
на:
if [ "$choice" = 1 ]
Сделать то же самое для всех последующих испытаний.
Когда оболочка видит «$ выбора» = = 1
, она видит один ряд. Если выбор
был, например, 2, то он видит последовательность 2 = 1
. Это не тест на равенство. Это последовательность. Поскольку это непустая последовательность, тест возвращает значение true. Следовательно, выполняются все варианты выбора.
Для признания критерия равенства необходимы места.
Отдельно и в качестве второстепенной точки для тестов стиля [
символ равенства имеет значение =
. bash примет = =
для этого, но это неправильно и не будет работать в других оболочках.
[...]
тестов в командной строке Легко изучить, как [
тесты работают в командной строке. Во-первых, давайте продемонстрируем, что пустая строка проверяет ложь:
$ if [ "" ]; then echo True; else echo False; fi
False
непустая строка, какая бы она ни была, верна:
$ if [ abc ]; then echo True; else echo False; fi
True
Теперь давайте посмотрим на 2 = = 1
:
$ if [ 2==1 ]; then echo True; else echo False; fi
True
Поскольку 2 = = 1
является непустой строкой, она проверяет истинность.
Теперь давайте добавим мест и сделаем тесты на равенство:
$ if [ 2 = 1 ]; then echo True; else echo False; fi
False
$ if [ 2 = 2 ]; then echo True; else echo False; fi
True
В качестве дополнительной тонкости, =
тесты на последовательность равенство, которое происходит хорошо работать здесь. Чтобы проверить числовое равенство, используйте -eq
.
$ if [ 2 -eq 2 ]; then echo True; else echo False; fi
True
-121--105557- Требуется места вокруг =
. В противном случае следует передать последовательность «$ выбора» = = 1
самому , если
, а не сравнивать $ выбора
с 1
. Когда [
получает последовательность, он вычисляется как true, если последовательность не пуста:
$ foo="bar"; [ $foo ] && echo true
true
$ foo=""; [ "$foo" ] && echo true ## echoes nothing
За пределами скобок test
при отсутствии космоса переменная фактически получает назначение = 1
. Для иллюстрации:
$ f==3
$ echo $f
=3
$ [ 10==12 ] && echo yes
yes
Как показано выше, f = = 3
наборы переменную $ f
на = 3
.
Таким образом, в блоке if
проверяется непустая последовательность, которая всегда получает значение true, и , если выполняется
. Это будет работать:
if [ "$choice" == "1" ]
then
baseinstall
fi
Также =
или = =
делать последовательности сравнения в bash. Требуется арифметическое сравнение:
if [ "$choice" -eq "1" ]
then
baseinstall
fi
-121--105556- Существует как минимум две программы с именем html2text
( 1 ) ( 2 ), выполняющие это задание.