Можно ли использовать wget для загрузки ресурса по URL-адресу?

Похоже, вы хотели бы иметь сканер синтаксиса оболочки и синтаксический анализатор, который выводит найденные токены и действия, которые он предпринимает на пути к выполнению фактической команды.

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

С bash, если вы компилируете оболочку самостоятельно с помощью макроса DEBUG, определенного и , если вы включаете все закомментированные вызовы функции itrace()в исходном коде оболочки 1 , тогда вы сможете получить немного того, что хотите увидеть:

bash-4.4$ if [[ "$BASHPID" = 10 ]] && [[ "$USER" = myself ]]; then echo hello me; fi
TRACE: pid 22914: parse_matched_pair[9]: open = " close = " flags = 0
TRACE: pid 22914: parse_matched_pair[9]: returning $BASHPID"
TRACE: pid 22914: parse_matched_pair[9]: open = " close = " flags = 0
TRACE: pid 22914: parse_matched_pair[9]: returning $USER"
TRACE: pid 22914: param_expand: `$BASHPID' pflags = 0

Здесь вы можете увидеть, как синтаксический анализатор выводит несколько отладочных операторов о поиске открывающих и закрывающих двойных кавычек и переменных оболочки. Позже другой шаг обработки сообщает нам, что выполняется расширение параметра $BASHPID, но перечислены далеко не все шаги.

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

Чтобы лучше познакомиться с синтаксисом и грамматикой оболочки, я предлагаю начать с определения грамматики оболочки POSIX (, которое довольно сложно и более или менее бессмысленно для тех, кто не могу прочитать EBNF).


1За исключением одного в lib/glob/glob.c, в котором есть синтаксическая ошибка.

0
27.07.2020, 18:51
1 ответ

Что ж, предоставленная вами ссылка на "Wayback Machine" была HTML-страницей, которую вы хотитеwget https://web.archive.org/web/20200726034218if_/http://www.abook.cn/pdf/H-0552.0101.pdf

Это можно найти, просмотрев исходный код страницы,и найти iframe, который загружает PDF,<iframe id="playback" src=

Тем не менее, я лично рекомендую вам сохранить этот файл на вашем собственном веб-сервере, CDN и т. д. -, а затем извлечь его оттуда.

2
18.03.2021, 23:17

Теги

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