아래와 같이 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 변수를 참조하도록 주의했습니다 .