混乱したdb2出力

混乱したdb2出力

Bashと入力するecho $(db2 -x "select count(*) from dict_area")446

ただし、 を入力すると、echo $(db2 -x "select count(*) from dict_area";db2 -x "select count(*) from dict_area")次のような結果が表示されます。

SQL1024N A database connection does not exist. SQLSTATE=08003 SQL1024N A database connection does not exist. SQLSTATE=08003

これは私の仕事とは何の関係もありません。私はこれがどのように起こったのか知りたいです。助けてください?

ベストアンサー1

$()で実行するとサブシェルが呼び出され、新しいサブシェルは現在シェルの接続を使用できません。これがこのようなエラーが発生する理由です。

サブシェルでタスクを実行するには、毎回接続を確立します。または、出力をファイルに書き込み、出力を処理して現在のファイルで実行します。

echo $(db2 connect to sample > /dev/null; db2 -x "select count(*) from dict_area")

または

db2 connect to sample
db2 -x "select count(*) from dict_area" > /tmp/output
echo $(cat output)

おすすめ記事