2016-01-08 2 views
0

Мой сценарий ниже:Минус операция работает неправильно

for i in {"CON","PA","PRO","RE","S","UN","VO"}; 
do 
count=$(sqlplus -S $user/$pass<<EOF 
    select count(distinct s.filename) as count 
    from cd.tbl_1 s 
    where s.dt like to_char(sysdate-1,'YYYYMMDD')||'%' and s.type='$i'; 
    exit; 
    EOF) 
yday=$(date --date="yesterday" +"%b %_d") 
thecount=$(ls . -ltr | grep "$yday" | wc -l) 
echo $i" ON DB $count DB files is lower than the number $((thecount-count)) files in folder 
    ------------------------------------------------------------------------------------"; 

Но интересно утончается, что $thecount и $count значение точно так же, поэтому, когда я использую минус операция, как и выше, это не имеет значение 0 и отличается стоимость. Так что это не минус правильно. Что здесь не так?

+1

oops. похоже, ваше приветствие и «Мой скрипт внизу» впитали ваш код. Вы, вероятно, можете это изменить. –

+0

Пожалуйста, подумайте о принятии хороших ответов на ваши вопросы. Поскольку этот вопрос содержит код из [этого ответа] (http://stackoverflow.com/a/34647893/5067311), я подозреваю, что у вас есть некоторые недостатки в этой области. И каков результат вместо 0? Вы уверены, что '$ count $' совпадает с '$ thecount'? –

+0

1. Будьте осторожны с использованием '' '' '' '' здесь docs: 's.type = '$ i''. 2. Я думаю, что вам нужно это: '$ (($ thecount - $ count))' (с межстрочным интервалом). 3. Используйте 'bash -x' или' set -x' в своем скрипте для его отладки. – Harvey

ответ

0
I found my mistake, 

count=$(sqlplus -S $user/$pass<<EOF 
    select count(distinct s.filename) as count 
    from cd.tbl_1 s 
    where s.dt like to_char(sysdate-1,'YYYYMMDD')||'%' and s.type='$i'; 
    exit; 
    EOF) 

this part is printing non-numeric values which is like below 

COUNT ---------- 5663 

that's why cannot any operation on those numbers. 

So how do i select only numbers "5663" ? 
+0

set pagesize 0 обратная связь выкл. Off off off off echo off; вот и все. Теперь он отлично работает – user347918

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