関数名を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