会員登録すると
学習することができます。
会員登録する(無料)
登録済みの方はこちら
ログイン

スクリプトにする ― 引数と終了コード

目安学習時間 15分

課題

全問正解でレクチャー完了です。

【問題1】

スクリプト内で引数を "$1" のように引用符で囲む理由はどれですか。

[選択肢]

【問題2】

シェルスクリプトの終了コードについて正しいものはどれですか。

[選択肢]
会員登録すると
学習することができます。
会員登録する(無料)

学ぶ目的

2回やるなら、ファイルにする

同じ処理を繰り返すなら、ファイルに保存して名前で呼べるようにします。

#!/usr/bin/env bash
set -euo pipefail

target="$1"
grep -c "$target" words.txt

1行目の #!/usr/bin/env bash は「これを bash で実行する」という指定です。保存したら実行できるようにします。

chmod +x count.sh
./count.sh beta

引数で変えられるようにする

"$1" は1番目の引数です。./count.sh beta と呼べば beta が入ります。引数にすると、中身を書き換えずに使い回せます。

引用符は必ず付けます。$1 のまま書くと、スペースを含む値を渡したときに壊れます。

終了コードで成否を伝える

コマンドは終わるときに数字を返します。0が成功、それ以外が失敗です。直前のコマンドの結果は $? で見られます。

./count.sh beta
echo "終了コード: $?"

この数字は、後で Make や他のスクリプトから「うまくいったか」を判断するのに使われます。人間向けのメッセージではなく、機械が読む合図です。

AIに書かせるときの指示

次の3つを最初に伝えると、手直しが減ります。

  • 引数で受け取りたいものは何か
  • 失敗したときに何を表示して、どの終了コードで終わるか
  • 実行していい対象の範囲(このディレクトリの中だけ、など)

このレクチャーで学ぶこと

  • スクリプトにする手順とシェバン
  • 引数と引用符
  • 終了コードの意味

質問

まだ質問は投稿されていません。

質問投稿

ログイン後に質問の投稿ができます。