やってみる

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

SQLite3ドットコマンド(.cd)

 カレントディレクトリの変更。シェルと同じ。

成果物

.help

.cd DIRECTORY            Change the working directory to DIRECTORY

CLI

 ターミナルで以下コマンド実行。

 テスト用ファイル作成。

mkdir -p ./sql/create
mkdir -p ./sql/insert
echo "create table T(C text);" > ./sql/create/T.sql
echo "insert into T values('A');" > ./sql/insert/T.sql

 .cdでカレントディレクトリを設定してみる。

sqlite3 :memory: \
".cd ./sql" \
".read ./create/T.sql" \
".read ./insert/T.sql" \
"select * from T;"
A

 できた。

SQLファイル作成版

 テスト用ファイル作成。

mkdir -p ./sql/create
mkdir -p ./sql/insert
echo "create table T(C text);" > ./sql/create/T.sql
echo "insert into T values('A');" > ./sql/insert/T.sql

 SQLファイル作成。.cdでカレントディレクトリを設定してみる。

echo ".cd ./sql
.read ./create/T.sql
.read ./insert/T.sql
select * from T;" > 0.sql

 実行。

for path in `ls -1 | grep .sql | sort`; do
    echo $path
    sqlite3 :memory: < $path
done
A

対話モード

sqlite3 :memory: \
".read "
sqlite3 
sqlite> 

 .cdコマンドでカレントディレクトリを設定。

.cd ./sql
.read ./create/T.sql
.read ./insert/T.sql
select * from T;
A

対象環境

$ uname -a
Linux raspberrypi 4.19.42-v7+ #1218 SMP Tue May 14 00:48:17 BST 2019 armv7l GNU/Linux

前回まで