1

シェル スクリプトで区切り文字エラーが発生します。

#!/bin/sh

result=`psql -d databasename -t -A <<EOF
SELECT COUNT(*) FROM schema.table
WHERE "column_name_x" = 'specific_value_x'
AND "column_name_y" = 'specific_value_y'
AND ("column_name_z" LIKE 'specific_z%' OR "column_name_za" LIKE 'specific_za%')
;`
EOF

echo $result
#EOF

スクリプトの結果は問題ありません。しかし、次の 2 つの警告が表示されます。

./filename.sh: line 13: warning: here-document at line 8 delimited by end-of-file (wanted `EOF')
./filename.sh: line 9: EOF: command not found

ここでの問題は何ですか?ありがとうございました!

4

1 に答える 1

1

コマンド内にヒアドキュメントの開始がありますが、EOF はコマンドの外にあります。

result=`psql -d databasename -t -A <<EOF
SELECT COUNT(*) FROM schema.table
WHERE "column_name_x" = 'specific_value_x'
AND "column_name_y" = 'specific_value_y'
AND ("column_name_z" LIKE 'specific_z%' OR "column_name_za" LIKE 'specific_za%')
EOF
`

ここ;でも間違っているようです(少なくとも私にはエラーが発生しました)。

于 2014-09-24T08:29:59.347 に答える