Bashでimportを再現する4(名前のプレフィクスにディレクトリ名とファイル名をつける(スペースをハイフンに変換する))
関数名をdir.file.func
のような名前にリネームする。
成果物
実行
git clone https://github.com/ytyaru/Shell.import.prefix.dir.file.name.space.2020012200000 cd ./src ./main.sh
import
の準備
import
の呼出例
- repo/
- main.sh
- su b/
- li b.sh
sub/lib.sh
Func() { echo 'Called su b/li b.sh Func()'; }
main.sh
. import 'su b/li b.sh' su-b.li-b.Func
前回まで
- Bashでimportを再現する1(呼出元をルートとした相対パスで指定したファイルを
.
(source
)する) - Bashでimportを再現する2(名前のプレフィクスにファイル名をつける)
- Bashでimportを再現する3(名前のプレフィクスにディレクトリ名とファイル名をつける)
注意
import
自体を.
(source
)コマンドで読み込む必要がある- ファイル内で定義した関数名や変数名を変更できない
- 実装しないつもりである
- インポートのルートディレクトリは
import
呼出元ファイルが存在するディレクトリです
所感
よく考えるとスペース以外にもbashのメタ文字がある。$
,()
, {}
, !
, #
, "
, '
, `
, ~
, \
, ;
。これらもハイフン化すべきかも? 面倒だから放置。
対象環境
- Raspbierry pi 4 Model B
- Raspbian buster 10.0 2019-09-26 ※
- bash 5.0.3(1)-release
$ uname -a Linux raspberrypi 4.19.75-v7l+ #1270 SMP Tue Sep 24 18:51:41 BST 2019 armv7l GNU/Linux