SQL*Plus にヒアドキュメントで SQL を渡し、全体をバッククオート(`)で囲めばよい。"$"などはエスケープする必要がある。 $ TRACE_DIR=`sqlplus -s <<EOF conn as sysdba set heading off set sqlblanklines off set pagesize 0 set trimout on select value from V\\$DIAG_INFO where name = 'Diag Trace'; exit EOF` $ echo $TRACE_DIR /u01/app/oracle/diag/rdbms/orcl/orcl1/trace 参考 bash/cshでSQL*PLUS実行結果をシェル変数に格納する方法 - カタカタブログ