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)