• 締切済み

シェルスクリプト中で、ヒアドキュメントで書いた内容を配列に格納したい

SQL文を実行するシェルスクリプトを作っています。 HAIRETSUにSQLファイル名を格納して、forループで実行させているのですが、現在は下記のようにSQLファイル名を横に並べて書いています。 ------------------------------------------- #!/bin/bash HAIRETSU=( test1.sql test2.sql ) for YOUSO in "${HAIRETSU[@]}" ; do psql testdb1 -f $YOUSO done -------------------------------------------- SQLファイルの数は実際にはもっと多いので、一行につき1ファイルだけ名前を書くようにしたいのです。ヒアドキュメントを使って後述のような方法も試みたのですが、この方法ですと配列が作成されません。 配列を別の処理でも使用したいので、ヒアドキュメントの内容を何とか配列に格納したいのですが、よい方法はないでしょうか? -------------------------------------------- for LINE in `cat << EOF test1.sql test2.sql EOF` do psql testdb1 -f $LINE done

みんなの回答

  • hogejo
  • ベストアンサー率42% (11/26)
回答No.1

#HAIRETSU=( test1.sql test2.sql ) HAIRETSU=( `cat << EOF test1.sql test2.sql EOF ` ) ( )の中をヒアドキュメントに置き換えるだけでいけるのでは??

参考URL:
http://www.k5.dion.ne.jp/~eudyptes/shellscript.html
eri_otto
質問者

お礼

あ・・・これで出来ました。 ↓これを試行錯誤で見つけたんだから、ご回答頂いた内容も分かっても良さそうなものなのに・・・申し訳ありません。 ---------------------------- for LINE in `cat << EOF test1.sql test2.sql EOF` ----------------------------- ありがとうございました。

関連するQ&A