以下のようにsqlplusから値を取得しようとしています。しかし、私が望むように答えません。これは私のスクリプトです。
#!/bin/ksh
OLDEST_PARTITION='sqlplus / as sysdba << EOF
select PARTITION_NAME
from dba_tab_partitions
where table_name='AUD$' and PARTITION_NAME not like '%FIRST%' and rownum<2
order by PARTITION_NAME asc;
EOF'
echo $OLDEST_PARTITION
結果は次のとおりです。
sqlplus / as sysdba << EOF select PARTITION_NAME from dba_tab_partitions where table_name=AUD and PARTITION_NAME not like %FIRST% and rownum<2 order by PARTITION_NAME asc; EOF
答え1
〜のようにまあ誤ってスクリプトをコピー/貼り付けていない限り、バックティックが予想される場所ごとに一重引用符を使用する必要があることを指摘してください。これを変更すると、スクリプトは次のようになります。
#!/bin/ksh
OLDEST_PARTITION=`sqlplus / as sysdba << EOF
select PARTITION_NAME
from dba_tab_partitions
where table_name='AUD$' and PARTITION_NAME not like '%FIRST%' and rownum<2
order by PARTITION_NAME asc;
EOF
`
echo "$OLDEST_PARTITION"
EOF
私はそれを別の行に保ち、OLDEST_PARTITION変数を参照するように注意しました。