Pageferry
Часто задаваемые вопросы

Отладка Bash: коды выхода, аргументы и линтеры

05

Основы Bash

Как режим отладки Bash помогает при сбое скрипта?

Флаг -x заставляет Bash выводить каждую команду с раскрытыми аргументами прямо перед запуском, чтобы вы видели, где именно скрипт дал сбой. Запускайте его как bash -x script.sh в WSL или на Linux-системе, которой вы владеете, а флаг -eu останавливает выполнение при первой ошибке или неинициализированной переменной. В Pageferry карточка Shell собирает этот трейс вместе с реальным кодом выхода.

Что такое линтер Bash и когда его запускать?

Линтер Bash — это отдельная программа, которая читает ваш скрипт без его выполнения и указывает на вероятные ошибки, например, на неэкранированную переменную. Вы выбираете линтер, устанавливаете его в WSL или на своей Linux-системе и просите агента запустить его через Shell. Карточка покажет его сообщения и код выхода. Линтер не заменяет тестовый запуск.

Как передать аргументы в скрипт Bash?

Аргументы — это значения после имени скрипта, например bash script.sh one two, а скрипт читает их как $1, $2 и так далее. Переменная $# содержит их количество, а "$@" — все аргументы как отдельные слова. Чтобы добавить обязательные флаги и аргументы, проверьте $# в начале, выведите строку использования в стандартный поток ошибок и завершите работу с кодом 2. Не передавайте секреты через аргументы командной строки: другие пользователи видят их в списке процессов.

Что означает код выхода 127 в Bash?

Код выхода 127 означает, что команда не найдена, обычно из-за опечатки, отсутствующей программы или PATH, который не включает её. Оболочка выводит сообщение, а Pageferry показывает то же сообщение и число в карточке Shell. Скрипт Bash, запускающий приложения с флагами, должен проверять код выхода каждой запущенной им программы.

Что означает код выхода 126 в Bash?

Код 126 означает, что файл найден, но его нельзя выполнить, обычно из-за отсутствия права на выполнение или потому что это не программа. Для своего скрипта команда chmod +x script.sh добавит это право, после чего ./script.sh сможет запустить его через shebang. Если не уверены, сначала запустите bash script.sh и прочитайте код выхода в карточке.

Использование Pageferry

Является ли codedguru.com официальным сайтом Pageferry?

Да, codedguru.com — это официальный сайт Pageferry. Кнопка загрузки предоставляет оригинальную установочную программу размером около 34 МБ, и вы можете сравнить её контрольную сумму SHA-256 с опубликованным манифестом перед запуском. Windows SmartScreen может выдать предупреждение, так как установщик пока не имеет цифровой подписи. Вопросы об приложении задавайте через кнопку Send feedback внутри него.

Может ли агент работать со скриптами Bash на Linux-системе?

Да, через WSL на вашем собственном ПК или по SSH к Linux-системе, которой вы владеете. Сам Pageferry — это приложение для Windows 10 и 11, поэтому вы общаетесь в Windows, файловые инструменты работают в рабочей папке чата, а Shell выполняет команды в выбранной вами среде. Используйте только машины, которыми вам разрешено управлять, и сначала тестируйте на копии.

Всегда ли результаты верны?

Нет. Агент выполняет команды и показывает реальный вывод, но скрипт всё ещё может быть ошибочным, а модель может неверно интерпретировать проблему. Читайте каждое изменение (diff), запускайте скрипт с тестовыми значениями и самостоятельно проверяйте код выхода. Pageferry фиксирует факты в карточке; решение принять изменение остаётся за вами, а отклонённое редактирование ничего не меняет.

В чём разница между режимами Ask first и Plan only?

Ask first — это режим, в котором агент может действовать, но приостанавливается перед каждым действием, изменяющим состояние, например записью файла, а при редактировании вы видите diff и принимаете или отклоняете его. Plan only составляет план и ничего не выполняет: ни команд, ни изменений файлов. Вы переключаете режим, чтобы выполнить план. Auto-run действует немедленно.

Можно ли запускать несколько задач параллельно?

Да, инструмент задач запускает субагентов параллельно, а внутри скрипта Bash можно запускать одновременные фоновые задачи с помощью & и использовать wait. Агрегация кодов выхода тогда — ваша задача: дождитесь завершения каждого идентификатора процесса и самостоятельно соберите его статус, так как $? содержит только статус последней команды. Протестируйте такой скрипт на своей машине.

Модели, конфиденциальность и загрузка

Покидают ли мои файлы компьютер при использовании облачной модели?

Да, с облачной моделью промпт, включая текст прочитанных агентом файлов, отправляется этому провайдеру. С локальной моделью ничего не покидает машину. В обоих случаях чаты, рабочие папки и ключи API остаются на ПК, а секреты в выводе инструментов маскируются перед отправкой модели. Вы выбираете конечную точку, поэтому выбирайте её, учитывая свой скрипт.

Есть ли у установщика цифровая подпись?

Нет, установщик пока не имеет цифровой подписи, поэтому Windows SmartScreen может выдать предупреждение при запуске. Сравните контрольную сумму SHA-256 загруженного файла с опубликованным манифестом, и только затем выберите Run anyway в разделе More info. В Windows команда certutil -hashfile с путём к файлу и параметром SHA256 выводит значение для сравнения.

Какой размер у установочной программы?

34 МБ — это размер установочной программы, которую предоставляет кнопка загрузки. Также существует портативный одиночный .exe размером около 25 МБ, но кнопка его не предоставляет. Оба варианта собраны для Windows 10 и 11, текущая версия — 2.9.26. После установки приложение показывает кнопку Update, когда готова новая версия.

Нужна ли для Pageferry учётная запись или интернет?

Для запуска приложения учётная запись не нужна. Необходимость интернета зависит от модели: облачному ИИ-провайдеру он нужен, локальной модели — нет, а веб-поиск, проверка обновлений и управление чатами с телефона — это опциональные функции, требующие сети. Управление с телефона использует одно исходящее соединение, которое можно отключить.

Pageferry для Windows

Отладьте следующий скрипт Bash с видимым кодом выхода

Скачать Pageferry ↗