Pageferry
製品

チャットカードでBashの終了コード、スクリプト出力、ファイル差分を表示

01

Bashの終了コードとは、コマンドが終了した際に返す数値です。0は成功、1〜255は失敗を意味します。PageferryはShellを使ってスクリプトを実行し、実際のプロセスからその数値を読み取って、出力の隣にあるチャットカードに表示します。ファイルの編集も可能で、差分を最初に表示します。

01

スクリプトを実行

ShellはWSL上またはSSH経由でBashスクリプトを実行し、チャットに実際の終了コードを表示します。

02

ファイルを読み込む

read_fileとgrepはスクリプトをチャットに表示し、$1や$2がどこで使用されているかを見つけることができます。

03

差分付きで編集

edit_fileは変更を提案し、差分を表示します。「Ask first」モードでは、あなたの承認を待ってから実行します。

エージェントの機能

チャットでの実行の流れ

各アクションはチャットにカードとして表示されます。Shellは実際の終了コードを報告し、edit_fileは差分を表示し、Ask firstは変更が行われる前にあなたの承認を待ちます。カードを開くと、完全な出力や差分を確認できます。

終了コードと引数を用いた4つのタスク

引数が不足したときの終了コードを確認

エージェントに、check.shに引数がない場合に何が起こるか調べてもらいます。read_fileでスクリプトを開き、Shellでbash check.shと引数なしで実行します。カードには実際の出力と終了コードが表示され、スクリプトが標準エラーに使用法を表示してexit 2で終了する場合は2となります。最後のコマンドのBash終了コードは$?に格納され、呼び出し元はその数値のみを確認できます。明確なコードで終了するスクリプトは、常に1を返すスクリプトよりもテストが容易です。その後Shellはスクリプトを2つの値で再実行し、カードには0が表示されるはずです。コードに驚いた場合は、カードを読み、Ask firstの下でedit_fileが提案する修正を確認し、差分を確認してください。

getoptsでオプションを解析

「getoptについて説明して」と入力すると、エージェントは平易な言葉で回答します。getoptsは-vや-f fileなどの短縮オプション用のBash組み込みコマンドであり、getoptは--fileなどの長縮オプションも処理し、システム間で動作が異なる別個のコマンドです。次にread_fileでスクリプトを開き、edit_fileでgetoptsループを追加し、差分を確認します。Shellは-v、-f、および間違ったオプション付きでスクリプトを実行し、各カードに固有の終了コードが含まれます。間違ったオプションは通常、不正な使用を示す2で終了すべきです。数少ないオプションの場合、caseとshiftを使用したwhileループで十分なので、そのバージョンをリクエストすることもできます。差分を読み終えてから承認してください。

スペースを含む値を1つに保つ

スペースを含む引数をスクリプトに渡す際、値が引用符で囲まれていないと、シェルがそれらを個別の単語に分割するため失敗します。エージェントはread_fileでファイルを読み、引用符なしの$1や$@を見つけ、edit_fileでそれらを二重引用符で囲むことを提案します。その後Shellは「two words」のような値付きでスクリプトを実行し、出力が1行として届くか2行として届くかを確認します。コマンドライン引数を管理するトリックの一つにshiftがあり、これは最初の値を削除してループが残り全体を処理できるようにします。エージェントは同じ差分でこれを追加できます。Ask firstモードでは編集はあなたの承認を待ちます。差分を確認し、テストを再実行し、2つの出力を自分で比較してください。

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、web、SSHは作業フォルダに限定されません。コードと結果は誤っている可能性があるため、差分を読み、テストを行ってください。ツール出力に含まれるシークレットは、モデルに到達する前にマスクされます。

Windows用Pageferry

次のBashスクリプトを、確認できる終了コード付きで実行

Pageferryをダウンロード ↗