import ... as ...でプレフィクスをリネームできる。また、import ... -1など階層数を指定することでプレフィクス付与階層数を指定できる。
成果物
実行
git clone https://github.com/ytyaru/Shell.import.prefix.rename.2020012300000 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
. import 'su b/li b.sh' as LIB LIB.Func
. import 'su b/li b.sh' as LIB.SUB LIB.SUB.Func
. import 'su b/li b.sh' -0 Func
. import 'su b/li b.sh' -1 li-b.Func
. import 'su b/li b.sh' -2 su-b.li-b.Func
前回まで
- Bashでimportを再現する1(呼出元をルートとした相対パスで指定したファイルを
.(source)する) - Bashでimportを再現する2(名前のプレフィクスにファイル名をつける)
- Bashでimportを再現する3(名前のプレフィクスにディレクトリ名とファイル名をつける)
- Bashでimportを再現する4(名前のプレフィクスにディレクトリ名とファイル名をつける(スペースをハイフンに変換する))
注意
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