Некоторые способы обхода цитирования заключаются в передаче переменных во внутреннюю sh
в качестве аргументов:
log=$2
... | xargs -I {} sh -c 'echo "Dumping file: $1" >> "$2"; w3m {} >> "$2" 2>&1' sh {} "$log"
или просто export
соответствующие переменные, чтобы вы обращались к ним по имени
export log=$2
... | xargs -I {} sh -c 'echo "Dumping file: $1" >> "$log"; w3m {} >> "$log" 2>&1' sh {}
Хотя обратите внимание, что простые find
и xargs -L
могут работать плохо, если у вас странные имена файлов :новые строки, очевидно, и -L
специально обрабатывает конечные пробелы.
x11vnc, как следует из названия, совместно использует дисплей X11 на vnc. У вас нет X, поэтому x11vnc нечем поделиться.
Это сообщение об ошибке говорит о том, что x11vnc хотел подключить ваш дисплей X11, чтобы получить его содержимое (и поделиться с подключенными клиентами vnc ). Однако ему не удалось подключиться к X-серверу, так как его нет на вашем компьютере.
Можно было бы разработать vnc-сервер, который использует текстовую консоль Linux, но мои запросы в Google ничего не дали. Вероятно, никто не разработал его, потому что любой, кто хочет получить доступ к текстовой консоли Linux, использует ssh.
По моему мнению, опытный разработчик может разработать его примерно за 2 недели.
Однако текущие установки Linux почти всегда используют фреймбуфер. Это означает, что даже текстовая консоль Linux использует графический режим видеокарты . Для фреймбуфера уже существует несколько серверов vnc, например этот , этот или этот .