やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

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の準備

  1. moduled_import.shファイルをimportにリネームする
  2. importファイルが存在するディレクトリを環境変数PATHに通す

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自体を.(source)コマンドで読み込む必要がある
  • ファイル内で定義した関数名や変数名を変更できない
    • 実装しないつもりである
  • インポートのルートディレクトリはimport呼出元ファイルが存在するディレクトリです

所感

 よく考えるとスペース以外にもbashのメタ文字がある。$,(), {}, !, #, ", ', `, ~, \, ;。これらもハイフン化すべきかも? 面倒だから放置。

対象環境

$ uname -a
Linux raspberrypi 4.19.75-v7l+ #1270 SMP Tue Sep 24 18:51:41 BST 2019 armv7l GNU/Linux