Pageferry
제품

채팅 카드에서 Bash 종료 코드, 스크립트 출력 및 파일 diff

01

Bash 종료 코드는 명령이 종료될 때 반환하는 숫자로, 성공 시 0, 실패 시 1~255입니다. Pageferry는 Shell을 통해 스크립트를 실행하고 실제 프로세스에서 해당 숫자를 읽은 뒤 출력 옆의 채팅 카드에 표시합니다. 파일도 수정하며, 변경 사항을 먼저 보여줍니다.

01

스크립트 실행

Shell은 WSL 또는 SSH를 통해 Bash 스크립트를 실행하고 채팅에 실제 종료 코드를 표시합니다.

02

파일 읽기

read_file과 grep은 채팅에 스크립트를 표시하므로 $1과 $2가 어디에서 사용되는지 확인할 수 있습니다.

03

diff와 함께 수정

edit_file은 변경 사항을 제안하고 diff를 보여줍니다. Ask first 모드에서는 사용자의 승인을 기다립니다.

에이전트의 기능

채팅에서 실행 과정

각 작업은 채팅의 카드가 됩니다. Shell은 실제 종료 코드를 보고하고, edit_file은 diff를 표시하며, Ask first는 변경 전에 승인을 기다립니다. 카드를 열면 전체 출력이나 전체 diff를 확인할 수 있습니다.

종료 코드와 인자가 포함된 네 가지 작업

인자가 없을 때 종료 코드 확인

에이전트에게 check.sh에 인자가 없을 때의 동작을 확인해 달라고 요청합니다. read_file이 스크립트를 열고, Shell은 이름 뒤에 아무것도 없이 bash check.sh를 실행합니다. 카드는 실제 출력과 종료 코드를 표시합니다. 스크립트가 표준 오류에 사용법 줄을 출력하고 exit 2로 끝나면 종료 코드는 2입니다. 마지막 명령의 Bash 종료 코드는 $?에 저장되며, 호출자는 해당 숫자만 확인합니다. 명확한 코드로 끝나는 스크립트는 항상 1을 반환하는 스크립트보다 테스트하기 쉽습니다. Shell은 스크립트를 두 값으로 다시 실행하며, 카드에는 0이 표시되어야 합니다. 코드가 놀랍다면 카드를 읽고 Ask first 모드에서 edit_file이 제안하는 수정 사항을 검토한 후 적용합니다.

getopts로 옵션 구문 분석

“getopt을 설명해 줘”라고 입력하면 에이전트는 평이한 언어로 답변합니다. getopts는 -v나 -f file과 같은 짧은 옵션을 위한 Bash 내장 명령이며, getopt는 --file과 같은 긴 옵션도 처리하며 시스템 간 동작이 다른 별도 명령입니다. 그런 다음 read_file이 스크립트를 열고 edit_file이 getopts 루프를 추가하며 diff를 확인합니다. Shell은 -v, -f 및 잘못된 옵션으로 스크립트를 실행하며 각 카드에는 고유한 종료 코드가 있습니다. 잘못된 옵션은 보통 잘못된 사용 의미인 2로 끝나야 합니다. 소수의 옵션에는 case와 shift가 있는 while 루프면 충분하므로 선호하는 버전을 요청할 수 있습니다. diff를 읽은 후에만 적용합니다.

공백이 포함된 값을 하나로 유지

공백이 포함된 인자를 스크립트에 전달할 때 값이 따옴표로 감싸지지 않으면 셸이 이를 별도의 단어로 나누므로 실패합니다. 에이전트는 read_file로 파일을 읽고 따옴표가 없는 $1과 $@를 찾으며, edit_file은 이를 이중 따옴표로 감싸는 변경을 제안합니다. Shell은 "two words"와 같은 값으로 스크립트를 실행하며 출력은 한 줄로 전달되는지 두 줄로 전달되는지 보여줍니다. 명령줄 인자를 관리하는 방법 중 하나는 shift로, 첫 번째 값을 제거하여 루프가 나머지 부분을 순회할 수 있게 합니다. 에이전트는 동일한 diff에 이를 추가할 수 있습니다. Ask first 모드에서는 편집이 사용자를 기다립니다. diff를 검토하고 테스트를 다시 실행한 후 두 출력을 직접 비교합니다.

set -eu로 오류 발생 시 중단

“bash exit script”를 검색하는 사람은 보통 exit 내장 명령을 찾습니다. exit N은 스크립트를 상태 N로 종료하고, return N은 함수만 종료합니다. 에이전트는 파일 상단에 set -eu와 set -o pipefail을 추가하여 오류와 미할당 변수 발생 시 스크립트를 중단하게 할 수 있으며, bash -n으로 구문 검사 및 bash -x로 각 명령을 출력합니다. return이 마지막 명령의 상태를 전달하지 않는다면 보통 그 사이에 다른 명령이 실행되었기 때문입니다. $?는 가장 최근 명령의 종료 코드만 보유합니다. Shell 카드는 추적 정보를 표시합니다. 위에서부터 읽고 스크립트와 비교한 후 수정 사항을 유지할지 결정합니다.

Pageferry가 하지 않는 것

Pageferry는 호스팅 서비스나 플러그인이 아닌 Windows용 데스크톱 앱입니다. 오직 자신의 파일, 자신의 PC 및 사용 권한이 있는 서버를 위해 설계되었습니다. 에이전트가 이를 강제하지 않으므로 작업 범위를 유지합니다. Shell, 웹 및 SSH는 현재 폴더로 제한되지 않습니다. 코드와 결과는 잘못될 수 있으므로 diff를 읽고 테스트합니다. 도구 출력에 나타나는 비밀 정보는 모델에 전달되기 전에 가려집니다.

Windows용 Pageferry

다음 Bash 스크립트를 종료 코드를 확인하며 실행하세요

Pageferry 다운로드 ↗