- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:bashで複数の変数を一時ファイルなし作らず一斉に取り込むには)
bashで複数の変数を一時ファイルなし作らず一斉に取り込むには
このQ&Aのポイント
- bashで複数の変数を一時ファイルを使用せずに一斉に取り込む方法を紹介します。
- 変数の値を取得する際の負荷や実行環境の後片付けなどに配慮し、効率的な方法を解説します。
- 例えば、SQL自動生成スクリプトでテーブルのメタデータを取得する場合にも応用できます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
組込みコマンド eval を使う。 evalは、引数をコマンドと解釈して実行する。 dbq() { DB_Qry_Process<<-_EOF logon ${DB_USER}/${DB_PASS}; select 'ROWCOUNT='||count(*) from ${TABLE}; select 'OWNER='||table_owner from sys_metadata.tableinfo; logoff; EOF } eval `bdq` ``は改行をスペースに置き換えてしまうので、出力は、改行前は;で終るようにするか、;区切りで1行で出力するようにする。 変数を設定するなら、=の前後に空白がないようにする。また、空白は引用符でくくるなどする
その他の回答 (2)
- notnot
- ベストアンサー率47% (4900/10358)
回答No.3
>アボートしたりで中間ファイルの削除をし損なったりした際に 参考までに、一時的なファイルを作成する場合は、作る前に、 trap "rm -f ./${TMPDIR}/tmpfile.${$}" 0 としておくと、シェルプロセスが正常終了しても異常終了しても消えます。ただし kill -9 されたときだけだめ。
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.1
「表示される」情報によっては read が使えるかも. あと, 一時ファイルを使うなら trap を使って後始末した方がいいかもしれん.