Posted at

Bashで便利なフレームワーク

More than 1 year has passed since last update.

bash-oo-framework(Bash Infinity)というものがあります。

ShellScriptを書くときは、これが便利になることがあります。

Bashでフレームワークを使うこと自体にはあまり意味があるとは思えませんが(Bashは速度及び、環境にあまり左右されず使えるため)、しかし、ShellScriptの可読性は向上すると思われます。

$ bash

$ which bash
/usr/local/bin/bash
$ git clone https://github.com/niieani/bash-oo-framework
$ cd bash-oo-framework
$ vim your-script.sh

基本的にはlibフォルダの上にスクリプトを置けば動作します。exampleフォルダを参考にしながら使い方を理解します。


bash-oo-framework/your-script.sh

#!/usr/local/bin/bash

source "$( cd "${BASH_SOURCE[0]%/*}" && pwd )/lib/oo-bootstrap.sh"

import util/log util/type
Log::AddOutput util/type CUSTOM

passingArrays() {
passingArraysInput() {
[array] passedInArray
$var:passedInArray push 'will work only for references'
$var:passedInArray push 'test'
}

array someArray=( 'one' 'two' )
passingArraysInput $ref:someArray
$var:someArray toJSON
}

passingArrays


$ ./your-script.sh

["one", "two", "will work only for references", "test"]

これで少しはShell Scriptが読みやすくなりますね。