#!/bin/bash
ASM=`sqlplus /nolog << EOF > /home/oracle/ASM.log
set heading off feedback off pagesize 0 verify off echo off
conn ddps/ddps@10.23.23.33
select total_mb, free_mb/1024 from v\\\$asm_diskgroup;
exit;
EOF`
echo ASM is "${ASM}"
if [ -z "$ASM" ]
then
ASM_SMS='query ASM error, please check quickly'
else
ASM_TOTAL=echo "$ASM"|cut -d " " -f1
ASM_FREE=echo "$ASM"|cut -d " " -f2
echo "ASM_TOTAL is ${ASM_TOTAL}"
echo "ASM_FREE is ${ASM_FREE}"
fi
请教各位高人,为什么获取不到ASM的值呢?获取出来的是空。如红色字体显示部分。
执行结果:ASM is
请各位大侠不吝赐教,谢谢。
你本来是想将sqlplus的返回结果赋值给ASM变量,但是你用到了sqlplus /nolog << EOF > /home/oracle/ASM.log,将执行结果重定向到/home/oracle/ASM.log,这时候ASM里面就是空的了。
温馨提示:答案为网友推荐,仅供参考