スクリプトを実行
ShellはWSL上またはSSH経由でBashスクリプトを実行し、チャットに実際の終了コードを表示します。
Bashの終了コードとは、コマンドが終了した際に返す数値です。0は成功、1〜255は失敗を意味します。PageferryはShellを使ってスクリプトを実行し、実際のプロセスからその数値を読み取って、出力の隣にあるチャットカードに表示します。ファイルの編集も可能で、差分を最初に表示します。
ShellはWSL上またはSSH経由でBashスクリプトを実行し、チャットに実際の終了コードを表示します。
read_fileとgrepはスクリプトをチャットに表示し、$1や$2がどこで使用されているかを見つけることができます。
edit_fileは変更を提案し、差分を表示します。「Ask first」モードでは、あなたの承認を待ってから実行します。
各アクションはチャットにカードとして表示されます。Shellは実際の終了コードを報告し、edit_fileは差分を表示し、Ask firstは変更が行われる前にあなたの承認を待ちます。カードを開くと、完全な出力や差分を確認できます。
bash check.sh a bexit 0bash check.shexit 2check.shreadexit3 matchesbash -n check.shexit 0エージェントに、check.shに引数がない場合に何が起こるか調べてもらいます。read_fileでスクリプトを開き、Shellでbash check.shと引数なしで実行します。カードには実際の出力と終了コードが表示され、スクリプトが標準エラーに使用法を表示してexit 2で終了する場合は2となります。最後のコマンドのBash終了コードは$?に格納され、呼び出し元はその数値のみを確認できます。明確なコードで終了するスクリプトは、常に1を返すスクリプトよりもテストが容易です。その後Shellはスクリプトを2つの値で再実行し、カードには0が表示されるはずです。コードに驚いた場合は、カードを読み、Ask firstの下でedit_fileが提案する修正を確認し、差分を確認してください。
「getoptについて説明して」と入力すると、エージェントは平易な言葉で回答します。getoptsは-vや-f fileなどの短縮オプション用のBash組み込みコマンドであり、getoptは--fileなどの長縮オプションも処理し、システム間で動作が異なる別個のコマンドです。次にread_fileでスクリプトを開き、edit_fileでgetoptsループを追加し、差分を確認します。Shellは-v、-f、および間違ったオプション付きでスクリプトを実行し、各カードに固有の終了コードが含まれます。間違ったオプションは通常、不正な使用を示す2で終了すべきです。数少ないオプションの場合、caseとshiftを使用したwhileループで十分なので、そのバージョンをリクエストすることもできます。差分を読み終えてから承認してください。
スペースを含む引数をスクリプトに渡す際、値が引用符で囲まれていないと、シェルがそれらを個別の単語に分割するため失敗します。エージェントはread_fileでファイルを読み、引用符なしの$1や$@を見つけ、edit_fileでそれらを二重引用符で囲むことを提案します。その後Shellは「two words」のような値付きでスクリプトを実行し、出力が1行として届くか2行として届くかを確認します。コマンドライン引数を管理するトリックの一つにshiftがあり、これは最初の値を削除してループが残り全体を処理できるようにします。エージェントは同じ差分でこれを追加できます。Ask firstモードでは編集はあなたの承認を待ちます。差分を確認し、テストを再実行し、2つの出力を自分で比較してください。
「bash exit script」を検索する人は通常、exit組み込みコマンドを探しています。exit NはスクリプトをステータスNで終了させ、return Nは関数からのみ離脱します。エージェントはスクリプトの先頭にset -euとset -o pipefailを追加し、エラーや未定義変数でスクリプトを停止させます。その後、bash -nで構文チェックを行い、bash -xで各コマンドを出力します。returnが最後のコマンドのステータスを返さない場合、通常はその間に別のコマンドが実行されたためです。$?には最新のコマンドの終了コードのみが保持されます。Shellカードにはトレースが表示されます。先頭から読み、スクリプトと比較し、編集を適用するかどうかを判断してください。
Pageferryはホスト型サービスやプラグインではなく、Windows用のデスクトップアプリです。あなたのファイル、PC、またはアクセス権のあるサーバーのみに使用することを意図しています。エージェントはこれを強制しないため、Shell、web、SSHは作業フォルダに限定されません。コードと結果は誤っている可能性があるため、差分を読み、テストを行ってください。ツール出力に含まれるシークレットは、モデルに到達する前にマスクされます。