Lから始まるLinux

3章22話
シェル関数
3章23話 ドットコマンド
もくじ
3章24話
setコマンド
ドットコマンド
若木 みどり
お兄ちゃん! 自作スクリプトは 関数を使って読みやすくなったけど そもそもの記述量が減っていないから 分量が多くてやっぱり大変だよ!
若木 しげる
それなら今回は ドットコマンド . を学ぼう!
若木 みどり(驚き)
. だけでコマンドなんだ? それってどういうものなのかな?
使い方
若木 しげる
ドットコマンド . ファイルに書かれた 内容を読み込むよ
. 読み込むファイルのパス
若木 みどり
指定されたファイルの内容がその場にあるかのように使えるんだね読み込むファイルに何か特別な設定は必要なのかな?
若木 しげる
実行権限は不要だけど読み込み権限は必要だよ
実践
若木 しげる
ドットコマンド . を使えばスクリプトを複数のファイルに分割して管理できるんだ
若木 しげる
例えば以下のようなスクリプトがあったとしよう
#!/bin/bash

# 変数設定
A=...
B=...
C=...

# 関数定義
function x() {
  ...
}

function y() {
  ...
}

function z() {
  ...
}

# 変数や関数を使った処理
...
若木 みどり
変数や関数が増えたらこのファイルの内容はすぐに膨れ上がりそうだね実際私のスクリプトはそんな感じになっちゃったよ
若木 しげる
そこでこれらを別ファイルに分けて必要な時に読むようにすると便利なんだ例えば以下のように分割して管理できるよ
variables
# 変数設定
A=...
B=...
C=...
functions
# 関数定義
function x() {
  ...
}

function y() {
  ...
}

function z() {
  ...
}
script
#!/bin/bash

# 他のファイルを読み込む
. ./variables
. ./functions

# 変数や関数を使った処理
...
若木 みどり
それぞれのファイルは役割ごとに内容がまとまっていて分量が少なく読みやすくなったね!
若木 しげる
ファイルを細かく分けすぎると逆に管理が煩雑になることがあるんだ自分が使いやすい粒度で分割するのがポイントだよ
source コマンド
若木 しげる
ドットコマンド.同じ動きをするものにsource があるんだ
若木 みどり
同じ動きなんだけど二つコマンドがあるんだ?
若木 しげる
. は短く書けるけど見落としやすいんだ. と書く人が多い印象だけどsource を使う人も一定数いるよ
若木 みどり
どちらを使ってもいいんだね!
まとめ
若木 みどり
今回はドットコマンド .sourceファイルの内容を読み込めることを学んだよ!
若木 しげる
スクリプトが大きくなって管理しづらくなったときはスクリプトの分割を考えよう個々のスクリプトの内容が短くなるので内容を把握しやすくなるよ!