Запуск скриптов
Shell запускает ваш Bash-скрипт в WSL или по SSH и показывает реальный код выхода в чате.
Код выхода Bash — это число, которое возвращает команда при завершении: 0 для успеха, 1–255 для ошибки. Pageferry запускает ваш скрипт с помощью Shell, считывает это число из реального процесса и помещает его в карточку чата рядом с выводом. Он также редактирует файлы и сначала показывает diff.
Shell запускает ваш Bash-скрипт в WSL или по SSH и показывает реальный код выхода в чате.
read_file и grep показывают ваш скрипт в чате, чтобы вы могли найти, где используются $1 и $2.
edit_file предлагает изменение и показывает diff. В режиме Ask first он ждёт вашего подтверждения.
Каждое действие становится карточкой в чате. Shell сообщает реальный код выхода, edit_file показывает diff, а Ask first ждёт вашего подтверждения, прежде чем что-либо изменится. Откройте карточку, чтобы прочитать полный вывод или полный diff.
bash check.sh a bexit 0bash check.shexit 2check.shreadexit3 matchesbash -n check.shexit 0Вы просите агента выяснить, что происходит, когда check.sh получает аргумент. read_file открывает скрипт, а Shell запускает bash check.sh без аргументов после имени. Карточка показывает реальный вывод и код выхода, который равен 2, если скрипт выводит строку использования в стандартный поток ошибок и завершается с exit 2. Код выхода Bash последней команды находится в $?, и вызывающий скрипт видит только это число, поэтому скрипт, заканчивающийся явным кодом, легче тестировать, чем тот, который всегда возвращает 1. Затем Shell снова запускает скрипт с двумя значениями, и карточка должна показать 0. Если коды вас удивляют, прочитайте карточку, затем позвольте edit_file предложить исправление в режиме Ask first и просмотрите diff.
Вы вводите «объясни мне getopt», и агент отвечает простыми словами: getopts — это встроенная команда Bash для коротких опций, таких как -v или -f file, тогда как getopt — это отдельная команда, которая также обрабатывает длинные опции, такие как --file, и ведёт себя по-разному в разных системах. Затем read_file открывает ваш скрипт, edit_file добавляет цикл getopts, и вы видите diff. Shell запускает скрипт с -v, с -f и с неверной опцией, и каждая карточка имеет свой код выхода. Неверная опция должна завершаться кодом 2, обычным кодом для неверного использования. Для нескольких опций достаточно цикла while с case и shift, поэтому попросите эту версию, если она вам больше нравится. Примите diff только после его прочтения.
Передача аргументов со пробелами в скрипт не работает, если значения не заключены в кавычки, потому что оболочка разбивает их на отдельные слова. Агент читает файл с помощью read_file, находит не заключённые в кавычки $1 и $@, и edit_file предлагает заключить их в двойные кавычки. Затем Shell запускает скрипт со значением, например «two words», и вывод показывает, доходит ли он одной строкой или двумя. Один из приёмов управления аргументами командной строки — это shift, который удаляет первое значение, чтобы цикл мог пройти по остальным, и агент может добавить его в тот же diff. В режиме Ask first редактирование ждёт вас. Просмотрите diff, снова запустите тест и сравните два вывода самостоятельно.
Любой, кто ищет «bash exit script», обычно ищет встроенную команду exit: exit N завершает скрипт со статусом N, тогда как return N только покидает функцию. Агент может добавить set -eu и set -o pipefail в начало, чтобы скрипт останавливался при ошибках и неопределённых переменных, а затем он запускает файл с помощью bash -n для проверки синтаксиса и bash -x для вывода каждой команды. Если return не возвращает статус последней команды, обычно между ними выполнялась другая команда, потому что $? содержит только код выхода самой последней команды. Карточка Shell показывает трассировку. Прочитайте её сверху, сравните со скриптом и решите, оставить ли редактирование.
Pageferry — это настольное приложение для Windows, а не хостинговый сервис или плагин. Оно предназначено только для ваших собственных файлов, вашего собственного ПК и серверов, которыми вы уполномочены управлять. Вы держите работу в этих рамках, потому что агент не обеспечивает этого, а Shell, веб и SSH не ограничены рабочей папкой. Код и результаты могут быть неверными, поэтому читайте diff и тестируйте. Секреты, появившиеся в выводе инструментов, маскируются перед отправкой в модель.