TechRetriever
ワークフロー

読んでテストできる Bash スクリプトファイルを作る

03
繰り返しの作業

繰り返しの作業からスクリプトへ

「Bash スクリプト 作成」や「Bash スクリプト 書き方」で検索する人の多くは、フォルダ内のログファイルを数えるといった、手作業で繰り返している作業を1つ抱えています。まず1つの作業から始めましょう。目標は、読めて、テストできて、もう一度実行できるファイルです。ここではエージェントがそれを下書きし、構文を確認して、各結果をカードで表示します。

01

プロジェクトのフォルダを開く

スクリプトが入っているフォルダ、または空のフォルダを、チャットの作業フォルダとして選びます。ファイルツールはその中で動作します。

02

作業を説明する

スクリプトが何を読み、何を出力し、何を変更してはいけないかを伝えます。たとえば、ログファイルを数えるだけの読み取り専用の処理です。

03

計画を確認する

実行せずにスクリプトを説明してほしいときは Plan only を、何かを変更する各操作を承認したいときは Ask first を選びます。

04

実行して確認する

bash -n を実行し、続いてテスト用フォルダで試走して、各カードの出力と終了コードを期待した結果と見比べます。

コピーして使える読み取り専用の例

count-logs.sh
#!/usr/bin/env bash
# count-logs.sh - count lines in .log files of a folder
# usage: bash count-logs.sh [folder]   (read-only)
set -eu

dir="${1:-.}"
count=$(find "$dir" -maxdepth 1 -name "*.log" | wc -l)
echo "found $count log file(s) in $dir"
for file in "$dir"/*.log; do
  [ -e "$file" ] || continue
  wc -l "$file"
done

このスクリプトは find で .log ファイルを数え、wc でそれぞれの行数を表示します。読み取るだけで、set -eu により、未設定の変数や、失敗したほとんどのコマンドでシェルが止まります。

次に作る2つのスクリプト

最初の Bash スクリプトにフィードバックをもらう

自分で書いた下書きを作業フォルダに貼り付けて、エージェントにレビューを頼みます。read_file がスクリプトを読み込み、grep が変数を使っている箇所を見つけ、エージェントはダブルクォートの抜け、チェックされていない引数、分かりにくい名前を指摘します。同じレビューは Bash の起動ファイルにも使えます。起動のたびに実行されるコマンドはどれかを尋ねてみましょう。Plan only では、エージェントはスクリプトを実行せずに説明します。修正を頼むと、edit_file がすべての変更を diff として表示するので、内容を理解してから承認してください。

カウントダウンタイマーを作る

初心者向けのシンプルな Bash タイマースクリプトに必要なのは、変数、for ループ、echo、sleep だけです。秒数を $1 で受け取り、残り秒数を表示するカウントダウンをエージェントに頼みましょう。write_file が countdown.sh を保存し、Shell が bash -n を実行して、3 のような小さな数で試走します。sleep はただ待つだけなので、このスクリプトがディスクの内容を変えることはありません。Bash で画像を ASCII アートに変換するといったアイデアも、同じループと変数の上に成り立ちますが、画像形式には追加の注意が必要です。出力カードを見て、終了コードを確認し、再利用する前にコードを読んでください。

Windows 版 TechRetriever

テスト用マシンで最初のスクリプトを動かす

TechRetriever をダウンロード ↗