2014-02-08 3 views
1

У меня есть оператор select внутри сценария bash, который возвращает последнюю дату в БД. Я запускаю этот запрос 4 раза, поэтому я хочу определить его только один раз и передать текст переменной.Хранить строку запроса SQL в переменной BASH

#!/bin/bash 

    linux commands; 
    database_date=$(sqlplus -s/nolog $USER/[email protected] <<END 
       set pagesize 0 feedback off verify off heading off echo off; 
       SELECT ... 
       exit; 
END 
) 


    commands that change the database date; 



    last_date=$(sqlplus -s/nolog $USER/[email protected] <<END 
       set pagesize 0 feedback off verify off heading off echo off; 
       SELECT ... 
       exit; 
END 
) 

commands that change the database date; 

Как я могу хранить эту большую строку $ (SQLPLUS ... в одну переменную и использовать его снова Спасибо

ответ

0

Один из способов будет использовать функцию:

foo() { 
sqlplus -s/nolog $USER/[email protected] <<END 
       set pagesize 0 feedback off verify off heading off echo off; 
       SELECT ... 
       exit; 
END 
} 

, а затем вызвать его, говоря:

value=$(foo) 

для того, чтобы получить значение, возвращаемое функцией, скажем echo "$value" (обратите внимание, что важны переменные цитирования).

+0

Очень благодарен !!! – user3253335

Смежные вопросы