0
の終わりで区切られた文書私は バッシュスクリプト警告 - HEREファイル
以下#!/usr/bin/env bash
cat <<'VERBATIM_SQL'
INSERT INTO t_random VALUES (generate_series(1,9999999999), md5(random()::text));
VERBATIM_SQL
ようなSQLファイルを持っているが、SQLファイルは以下のように呼ば取得されたシェルスクリプトから
#!/usr/bin/env bash
./insert.sql | psql -U postgres -p 5432 -h localhost -d vnera
./insert.sql | psql -U postgres -p 5432 -h localhost -d vnera
./insert.sql | psql -U postgres -p 5432 -h localhost -d vnera
Iを実行するには下記のような警告が表示されます
Loop 1./insert.sql: line 5: warning: here-document at line 3 delimited by end-of-file (wanted `VERBATIM_SQL')
この警告が表示される理由を教えてもらえますか?
EDIT
は、私がコメント
[email protected]:~/postgres_junk$ dos2unix insert.sql
dos2unix: converting file insert.sql to Unix format ...
の1で提案されたものでした。しかし、まだ
./insert.sql: line 5: warning: here-document at line 3 delimited by end-of-file (wanted `VERBATIM_SQL')
これは役立つかもしれない:特にhttps://stackoverflow.com/q/18660798/3776858 – Cyrus
を、あなたのファイルは、Windowsの行末を持っていないことを確認してください。 – rici
一貫して使用されていない限り、DOSの行末はこの問題を引き起こしません。 'VERBATIM_SQL \ r'は有効な区切り文字で、両方の場所で使用されます。 – chepner