shell:sqlplus出的结果与直接赋值的结果好像有出入

shell:sqlplus出的结果与直接赋值的结果好像有出入

自己做了一个脚本,在root的crontab中定时执行,中间需要切换到oracle用户下取一个值,发觉回不到root用户权限下了
shell脚本如下:
workday=`
su - oracle << EOF
sqlplus -s "user/pwd@db"
set head off
select 语句;--就是取一个值
exit --退出sqlplus
EOF
exit --退出oracle用户
`
echo $workday --20071213
tar -cvf $backuppath/tmp/$workday.tar *$workday*.DMP

通过查询得到的日期会报错:tarbackuppath/tmp/:Cannot write to a directory.
如果我不用sqlplus,而是直接给workday赋值,则不会出现错误

难道是这个workday前面有回车符号?
让路径只认到$backuppath/tmp/?
高手指点!      
这样 echo 一下 $workday 看结果是什么:

$ echo "|$workday|"      
|
20071213|
有回车,有什么办法去掉嘛?      
引用:
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=13689 $?=0] ; var=$(echo -e '\nhello')
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=13689 $?=0] ; echo "|$var|"
|
hello|
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=13689 $?=0] ; var=${var//[[:space:]]/}
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=13689 $?=0] ; echo "|$var|"
|hello|
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=13689 $?=0] ; bye
      
var=${var//[[:space:]]/}
我这边报错:0403-011 The specified substitution is not valid for this command      
我这边环境是AIX5.3      
AIX 5.3 上默认是用 ksh 的吧, 这样试试:
引用:
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=13689 $?=0] ; var=$(echo -e '\nhello')
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=13689 $?=0] ; echo "|$var|"
|
hello|
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=13689 $?=0] ; var=${var#?}
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=13689 $?=0] ; echo "|$var|"
|hello|
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=13689 $?=0] ; bye
      
呵呵,谢谢 dearvoid