как убрать пробел в эхо? - PullRequest
0 голосов
/ 01 апреля 2011
s#!/bin/ksh

usrid=`sql_login.sh`

if [ "$?" -ne "0" ]; then

   echo "sql login failed-Username/Password not available in control file"

   exit -1

fi

a=`sqlplus -s ${usrid} <<EOF

set pause    off

set heading  off

set feedback off

set serveroutput off;

select 10 from dual;

exit;

EOF`

b=`sqlplus -s ${usrid} <<EOF

set pause    off

set heading  off

set feedback off

select 11 from dual;

exit;

EOF`

echo "Out of sqlplus session";

echo $a$b;

Привет, его выдача, как 10 11?мне это нужно 1011 как мне этого добиться?

решение:

a1 = $ (echo $ {a #});

b1 = $ (echo $ {b #});

c1 = $ a1 $ b1;

echo $ c1;

Ответы [ 2 ]

0 голосов
/ 01 апреля 2011

Должны быть пробелы, включенные в значение a (и, вероятно, b тоже)

Вы можете избавиться от пробела, изменив значение переменной. при условии, что у вас есть bash, ksh или другая оболочка POSIX

echo ${a% }${b% }

, вероятно, будет работать. $ {var%} говорит, что для $ {var} удалите слева от значения переменной пробел (если он там есть). Если по какой-то причине вы обнаружите, что пробел находится спереди, например «а», используйте $ {a #}, что означает удаление справа от значения переменной пробела.

РЕДАКТИРОВАТЬ: решение Куруми (при условии, что Bash и POSIX оболочки, вероятно, лучше) потому что тогда не имеет значения, где в строке находится значение пробела.

НО, почему бы вам не объединить два значения и получить только 1 sql запрос?

$ аЬ = ... select 10 + 11 from dual;

Возможно, вам придется проконсультироваться со своими друзьями-оракулами, чтобы понять это правильно, но в SQL Sybase DB (и, вероятно, MS SQL) это не будет проблемой. D

ТАКЖЕ, перестаньте использовать обратные кавычки, они устарели с 1992 года (как минимум) ab = $ (cmd) намного приятнее; -)

Надеюсь, это поможет.

P.S. поскольку вы выглядите новым пользователем, если вы получите ответ, который поможет вам, не забудьте пометить его как принятый или дать ему + (или -) в качестве полезного ответа

0 голосов
/ 01 апреля 2011

вы можете попробовать

c="$a$b"
echo ${c// }

или удалить пробелы в каждой отдельной переменной

a=${a// } 
b=${b// } 

или вы можете позвонить внешним

echo $a | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...