2016-02-24 5 views
0

У меня есть сценарий, ниже я использую получить значение одного параметраспасаясь переменной в сценарии оболочки

var=`ssh -X -o StrictHostKeyChecking=no $phost " 
cd ; . ./.bash_profile;cd $ORACLE_HOME/dbs; sqlplus -s/as sysdba <<EOF 
set heading off 
set pagesize 0 
set tab off 
set feedback off 
select value from v$parameter where name='control_files'; 
EOF 
"` 

этот скрипт это выборка значения из таблицы V $ параметра и присваиваем его переменной var, теперь, как я могу избежать $ от V $ параметра

я попытался v \ $ параметр, но оно не поможет

+0

вы, вероятно, есть по крайней мере два уровня разбора происходящих там, так что попробуйте 'v \\ $ parameter' –

+0

@ Marc B я пытался это тоже, оно не поможет – Nomad

+0

Как насчет 'table = 'v $ parameter'' и' select value from $ {table} где ... ' –

ответ

0

Вы можете кошке строки кода в файл во время запуска сценария, а затем запустить созданный сценарий.

Что-то вроде:

echo "set heading off" > tempfile.sh 
echo "set pagesize 0" >> tempfile.sh 
echo "set tab off" >> tempfile.sh 
echo "set feedback off" >> tempfile.sh 
echo "select value from v${parameter} where name='control_files';" >> tempfile.sh 
chmod +x tempfile.sh 
./tempfile.sh 
Смежные вопросы