Pageferry
よくある質問

Bashデバッグの答え:終了コード、引数、リンター

05

Bashの基礎

スクリプトが失敗したとき、Bashのデバッグモードはどのように役立ちますか?

-x オプションを指定すると、Bashはコマンド実行の直前に、展開された引数付きでそのコマンドを出力します。これにより、スクリプトのどこで失敗したのかを正確に把握できます。WSLや所有するLinuxシステムでは bash -x script.sh として起動し、-eu オプションを併用すると、最初のエラーまたは未定義の変数発生時に実行が停止します。PageferryのShellカードでは、このトレース情報と実際の終了コードがまとめて表示されます。

Bashリンターとは何で、いつ実行すべきですか?

Bashリンターは、スクリプトを実行せずにコードを読み取り、引用されていない変数など、潜在的な誤りを指摘する別のプログラムです。ご自身でリンターを選択し、WSLやLinuxシステムにインストールしてください。エージェントにShellツールで実行を依頼すると、カードにはその出力メッセージと終了コードが表示されます。リンターはテスト実行の代わりにはなりません。

Bashスクリプトに引数を渡すにはどうすればよいですか?

引数はスクリプト名の後に続く値であり、例えば bash script.sh one two の場合、スクリプトは $1、$2 としてそれらを読み取ります。$# は引数の個数を保持し、"$@" はすべての引数を個別の単語として保持します。必須のフラグと引数をチェックするには、先頭で $# の値を確認し、標準エラーに使用方法を表示して exit 2 で終了します。シークレット情報をコマンドライン引数として渡さないでください。他のユーザーはプロセス一覧でそれらを確認できてしまいます。

Bashで終了コード127は何を意味しますか?

終了コード127は、コマンドが見つからなかったことを意味します。通常、タイプミス、プログラムがインストールされていない、またはPATHにそのプログラムが含まれていないことが原因です。シェルはエラーメッセージを出力し、PageferryもShellカードで同じメッセージと番号を表示します。フラグ付きでアプリを実行するBashスクリプトは、起動するすべてのアプリの終了コードを確認すべきです。

Bashで終了コード126は何を意味しますか?

コード126は、ファイルは見つかったが実行できないことを意味します。通常、実行権限がないか、プログラムではないことが原因です。ご自身で管理するスクリプトの場合、chmod +x script.sh で実行権限を追加し、その後 ./script.sh でshebang行を介して起動できます。確信が持てない場合は、まず bash script.sh を実行し、カードで終了コードを確認してください。

Pageferryの使い方

codedguru.comはPageferryの公式サイトですか?

はい、codedguru.comはPageferryの公式サイトです。ダウンロードボタンから提供されるのは約34 MBのインストーラで、実行する前にそのSHA-256チェックサムを公開されたマニフェストと比較できます。インストーラはまだコード署名されていないため、Windows SmartScreenが警告を表示する場合があります。アプリに関する質問は、アプリ内の「Send feedback」ボタンから送信してください。

エージェントはLinuxシステム上のBashスクリプトと連携できますか?

はい、ご自身のPC上のWSL経由、または所有するLinuxシステムへのSSH経由で連携できます。Pageferry自体はWindows 10および11用のアプリなので、Windows上でチャットし、ファイルツールはチャットの作業フォルダで動作し、Shellは選択した環境でコマンドを実行します。管理権限のあるマシンのみを使用し、まずバックアップやコピー上でテストしてください。

結果は常に正しいですか?

いいえ。エージェントはコマンドを実行し実際の出力を表示しますが、スクリプトが間違っている場合や、モデルが問題を誤解する場合があります。すべての差分を確認し、テスト値でスクリプトを実行し、終了コードを自分で確認してください。Pageferryは事実をカードにまとめますが、変更を受け入れるかどうかの判断はあなたに委ねられ、拒否された編集は何も変更しません。

Ask firstとPlan onlyの違いは何ですか?

Ask firstは、エージェントがアクションを実行できるが、ファイルの書き込みなど何かを変更するアクションの前に一時停止するモードです。編集の場合、差分を確認して承認または拒否できます。Plan onlyは計画のみを出力し、コマンドもファイル変更も実行しません。計画を実行するにはモードを切り替えます。Auto-runは直ちにアクションを実行します。

複数のジョブを並列に実行できますか?

はい。タスクツールはサブエージェントを並列に起動し、Bashスクリプト内では & を使用してバックグラウンドで並行ジョブを開始し、wait を使用できます。終了コードの集計はあなたの仕事になります:各プロセスIDを待機し、そのステータスを自分で収集してください。$? は最後のコマンドのステータスしか保持しないためです。このようなスクリプトはご自身のマシンでテストしてください。

モデル、プライバシー、ダウンロード

クラウドモデルを使用する場合、ファイルはPCから送信されますか?

はい。クラウドモデルを使用する場合、エージェントが読み取るファイルのテキストを含むプロンプトはそのプロバイダに送信されます。ローカルモデルを使用する場合、データはマシンから送信されません。どちらの場合も、チャット、作業フォルダ、APIキーはPC上に残り、ツール出力内のシークレットはモデルに到達する前にマスクされます。エンドポイントを選択できるので、スクリプトの性質を念頭に置いて選択してください。

インストーラはコード署名されていますか?

いいえ、インストーラはまだコード署名されていないため、実行時にWindows SmartScreenが警告を表示する場合があります。ダウンロードしたファイルのSHA-256チェックサムを公開されたマニフェストと比較し、その後「詳細情報」の下にある「そのまま実行」を選択してください。Windowsでは、コマンドプロンプトで certutil -hashfile <ファイルパス> SHA256 と実行すると、比較対象の値が出力されます。

セットアッププログラムのサイズはどのくらいですか?

ダウンロードボタンから提供されるセットアッププログラムのサイズは34 MBです。約25 MBのポータブル版単一.exeも存在しますが、ボタンからは提供されません。両方ともWindows 10および11向けにビルドされており、現在のバージョンは2.9.26です。インストール後、新しいバージョンが利用可能になるとアプリに「Update」ボタンが表示されます。

Pageferryにはアカウントやネットワーク接続が必要ですか?

アプリを実行するためにアカウントは必要ありません。ネットワーク接続の必要性はモデルによります:クラウドAIプロバイダは接続が必要ですが、ローカルモデルは不要です。web検索、更新チェック、およびスマートフォンブラウザからのチャット制御はオプションのネットワーク機能です。スマートフォンの制御には1つのアウトバウンド接続を使用し、無効にすることもできます。

Windows用Pageferry

終了コードを確認して、次のBashスクリプトをデバッグしましょう

Pageferryをダウンロード ↗