shellscript
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン | |||
| shellscript [2025/10/11 16:48] – nullpon | shellscript [2025/10/31 02:06] (現在) – nullpon | ||
|---|---|---|---|
| 行 11: | 行 11: | ||
| </ | </ | ||
| - | そんなbashがない環境の代表がalpine。dockerでシェルスクリプトを起動するならdebianやubuntuが良いだろう | + | そんなbashがない環境の代表がalpine。dockerでシェルスクリプトを起動するならalpineを避けてdebianやubuntuをベースにすると良い。 |
| + | |||
| + | ===== シェルスクリプトの実行方法 ===== | ||
| + | |||
| + | - '' | ||
| + | - '' | ||
| + | - 実行権限を付与して直接実行(普段はこれ) | ||
| + | |||
| + | ==== sourceコマンドまたは. ==== | ||
| + | |||
| + | ファイル内に定義されているシェル関数や変数をシェルにロードする目的で使用する | ||
| + | |||
| + | <code sh> | ||
| + | HOGE=' | ||
| + | |||
| + | p() { | ||
| + | echo " | ||
| + | } | ||
| + | |||
| + | p | ||
| + | </ | ||
| + | |||
| + | これを実行すると、スクリプト終了後もpやHOGEがシェルに残る。 | ||
| + | |||
| + | <code sh> | ||
| + | $ source ./ | ||
| + | 1 | ||
| + | $ echo $HOGE | ||
| + | 1 | ||
| + | $ p | ||
| + | 1 | ||
| + | $ HOGE=2 | ||
| + | $ p | ||
| + | 2 | ||
| + | </ | ||
| + | |||
| + | '' | ||
| + | |||
| + | なお'' | ||
| + | |||
| + | <code sh> | ||
| + | $ . ./hoge.sh | ||
| + | $ . hoge.sh | ||
| + | </ | ||
| + | |||
| + | ==== bash, zshの引数として実行 ==== | ||
| + | |||
| + | |||
| + | 意図がなければ基本的には避けるべき実行方法 | ||
| + | |||
| + | <code sh> | ||
| + | $ bash sample.sh | ||
| + | </ | ||
| + | |||
| + | UNIXスクリプトは実行するシェル・ランタイムをshbangで指定する。以下のスクリプトはzshを想定しておりbashでは正しく動作しない、またはエラーになる可能性がある | ||
| + | |||
| + | <code sh> | ||
| + | # | ||
| + | |||
| + | name=" | ||
| + | echo ${name:u} | ||
| + | </ | ||
| + | |||
| + | <code sh> | ||
| + | $ zsh hoge.sh | ||
| + | HELLO | ||
| + | $ bash hoge.sh | ||
| + | hello | ||
| + | </ | ||
| + | |||
| + | 逆に自分がシェルスクリプトを書くときも何も考えず''# | ||
| + | |||
| + | ==== 実行権限を付与して直接実行 ==== | ||
| + | |||
| + | 普通はこれで実行する | ||
| + | |||
| + | <code sh> | ||
| + | $ chmod +x sample.sh | ||
| + | $ ./sample.sh | ||
| + | </ | ||
| ===== shの実行オプション ===== | ===== shの実行オプション ===== | ||
shellscript.txt · 最終更新: by nullpon