0

同じディレクトリに 2 つのファイルを取得します。

foo.db
check.sh

データベースfoo.dbには というテーブルがあり、 にfoo.db.1check.shテーブルが存在するかどうかを確認したい:

#!/bin/sh
if ![ -e foo.db.1 ]; then
    echo "foo.db.1 does not exist"
    exit 1
fi

それから私は言うプリントを手に入れましたfoo.db.1 does not exist。スクリプトは機能していないようですが、テーブルが存在する代わりにデータベースが存在するかどうかを確認するようにスクリプトを変更すると、機能するようです。

#!/bin/sh
if ![ -e foo.db ]; then
    echo "foo.db does not exist"
    exit 1
fi
echo "foo.db does exist"

次に、「foo.dbは存在します」という出力を取得します

データベースが存在するかどうかは確認できるようですが、データベースにテーブルが存在するかどうかは確認できません。

4

3 に答える 3

2
sqlite3 /database/path "SELECT EXISTS (SELECT * FROM sqlite_master WHERE type='table' AND name='<tableName>');"

0テーブルが存在しない場合はa を返し、存在する場合は a を返します1

于 2013-08-27T20:22:46.350 に答える
0

二重括弧を使用するか、! 外側:

if [[ ! -e foo.db.1 ]]; then
    echo "foo.db.1 does not exist"
    exit 1
fi

if ! [ -e foo.db.1 ]; then
    echo "foo.db.1 does not exist"
    exit 1
fi
于 2013-08-27T16:38:30.307 に答える