免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3371 | 回复: 17
打印 上一主题 下一主题

shell脚本`问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-01-14 10:47 |只看该作者 |倒序浏览
各位大虾~

我的shell脚本其中一段:
{

#根据实际情况填写变量
ORACLE_SID=
NLS_LANG=
username=
password=
tablefilepath="/backup/table"
oracleruningpath="/oracle/HB2/sapdata1"
backupdate=`date +%d%m%y`
echo $backupdate

#--------------脚本---------------
#判断脚本文件和table文件是否存在
if [ ! -f "tablefilepath" ]; then
echo "table file is exist in this directory"
else
echo "table file is not exist in this directory" > exp.log
exit 0
#判断数据库正在运行的服务器
if [ ! -f "oraclerunningpath" ]; then
echo "oracle database is runing in this server"
else
echo "oracle database is not running in this server" > exp.log
fi
#设置操作系统时间变量和文件名变量
backupdate=`date +%d%m%y`
echo $backupdate

for row in `cat table`;do
echo $row
done
exp SAPSR3DB/sepcce19@CEQ file=/backup/bpmbak$backupdate.dmp log=/backup/exp$backupdate.log tables=($row)

}

问题1:
为啥子之行的时候 exp 报错
./backup.sh: line 36: `exp SAPSR3DB/sepcce19@CEQ file=/backup/bpmbak$backupdate.dmp log=/backup/exp$backupdate.log tables=($row)'

注意后面($row)' 多了一个`   哪位帮我指点一下 谢谢!!

问题2:
顺便if [ ! -f "tablefilepath" ]; then 这个语句貌似不能正确判断文件是否存在?

论坛徽章:
0
2 [报告]
发表于 2011-01-14 11:33 |只看该作者
问题1:
为啥子之行的时候 exp 报错
./backup.sh: line 36: `exp SAPSR3DB/sepcce19@CEQ file=/backup/bpmbak$backupdate.dmp log=/backup/exp$backupdate.log tables=($row)'

注意后面($row)' 多了一个`   哪位帮我指点一下 谢谢!!

问题2:
顺便if [ ! -f "tablefilepath" ]; then 这个语句貌似不能正确判断文件是否存在?

论坛徽章:
0
3 [报告]
发表于 2011-01-14 12:41 |只看该作者
本帖最后由 taojie2000 于 2011-01-14 12:42 编辑

回复 2# cajun_china


    这脚本够汗的...

    $    和  " "   你没弄明白吧?

    你觉得 -f  "table...."      还是 -f  $table...  对呢?  

    多看看脚本基础,别着急上手写!


    还有前面有个 ! 你觉得是表示啥意思?

论坛徽章:
0
4 [报告]
发表于 2011-01-14 12:51 |只看该作者
本帖最后由 taojie2000 于 2011-01-14 13:11 编辑

( $row )   你可以括号换个shuang引号 或 不加

done  放 exp  后面才能按照cat ...文件里的内容 每条执行

论坛徽章:
0
5 [报告]
发表于 2011-01-14 13:02 |只看该作者
( $row )` 这加双引号还是不行。

刚学习写这个东西,以前没玩过

论坛徽章:
0
6 [报告]
发表于 2011-01-14 13:10 |只看该作者
exp放在done前面 执行 oracle exp 命令 不能满足要求,我需要一次导出table 文件里面所列的表 ,而如果放在done前面就会循环导出N次

论坛徽章:
0
7 [报告]
发表于 2011-01-14 13:10 |只看该作者
回复 5# cajun_china


    先按照 我那2层楼写的改  
   
   改完运行还有错就把具体错误发上来!

论坛徽章:
0
8 [报告]
发表于 2011-01-14 13:16 |只看该作者
本帖最后由 taojie2000 于 2011-01-14 13:20 编辑

回复 6# cajun_china


    你table 里是 aaa,bbb,ccc,......这样格式吧?

    你写 for    本来就是个循环脚本! 你的要求那就不用它

   A=`cat table文件`

    直接exp ..............................table=$A

论坛徽章:
0
9 [报告]
发表于 2011-01-14 13:42 |只看该作者
table的格式
a
b
c



table=`cat tables`
echo $table
exp SAPSR3DB/sepcce19@CEQ file=/backup/bpmbak$backupdate.dmp log=/backup/exp$backupdate.log tables=$table


~
~
~
~
~
"backup.sh" 37L, 998C written                                                                                    
epq19:/backup # ./backup.sh
150111
./backup.sh: line 38: syntax error: unexpected end of file

论坛徽章:
0
10 [报告]
发表于 2011-01-14 13:59 |只看该作者
cat tables?   怎么有多了个s    你的不是  "/backup/table     table吗?  

你最终是想  exp    .......     tables=aaa,bbb,ccc    一句话几个同时是吧?

那你table文件里面最好 aaa,bbb,ccc写!

我感觉 你现在看脚本开始有点混乱了吧?

line 38    具体是哪行? 内容呢?   

我这帮你解决  你不提供详细点!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP