シェル実行をSQLで行う仮想テーブルモジュールがあったらいいな。
要望
これはただの要望であり妄想。このように実装できるかどうかもわからない。
ドットコマンド.shell
ならあるのだが、結果を表にセットしたい。
構文
select shell(コマンド);
たとえば以下。
select shell('ls');
結果
値
スカラー値、行値、表値のいずれかを返す。
select shell(`ls -1`, col_delimiter='\t');
select shell(`ls -1`, row_delimiter='\n');
select shell(`ps`, row_delimiter='\n', col_delimiter='\t');
たとえば以下のように設定されると、それぞれの形式で返す。デフォルトはスカラー値。
- | row_del |
col_del |
---|---|---|
スカラー値 | '' |
'' |
行値 | '\n' |
'' |
表値 | '\n' |
'\t' |
表値にすると1行目を列名として取り込む。
列
シェルは出力先がファイルである。もしファイルディスクリプタなら列として返す。
create table shell_result( runed_at text current_timestamp, cmd text, stdin text, stdout text, stderr text, fd3 text, fd4 text, ... );
対象環境
- Raspbierry pi 3 Model B+
- Raspbian stretch 9.0 2018-11-13
- bash 4.4.12(1)-release
- SQLite 3.29.0
- MeCab 0.996ユーザ辞書