免费注册 查看新帖 |

Chinaunix

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

赋值操作的疑问 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-30 13:30 |只看该作者 |倒序浏览
我写了这样一个脚本
echo -n "Please set the full path of oracle installation package:"
read full
#设置文件解压的输出目录,默认为安装包所在目录
echo -n "Please set output directory:"     
read output
echo $full
echo $output
7z x $full -o$output
当我执行这个脚本的时候,第一个参数输入的是"/root/Oracle Database 10.2.0.1.0.zip"
第二个是/var
但是执行后提示
7-Zip (A)  4.58 beta  Copyright (c) 1999-2008 Igor Pavlov  2008-05-05
p7zip Version 4.58 (locale=zh_CN.UTF-8,Utf16=on,HugeFiles=on,1 CPU)

Error:
there is no such archive

可是在命令行下直接执行7z x "/root/Oracle Database 10.2.0.1.0.zip" -o/var却是可以执行的
请教高手这个脚本到底怎么写才能做到命令行下直接执行的效果

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2009-11-30 13:48 |只看该作者
第一read这么写
read a b c
7Z那段
7z x $a $b $c -o$output

论坛徽章:
0
3 [报告]
发表于 2009-11-30 14:03 |只看该作者

回复 #2 寂寞烈火 的帖子

还是提示那个错误,实在不会了

论坛徽章:
0
4 [报告]
发表于 2009-11-30 14:08 |只看该作者

回复 #2 寂寞烈火 的帖子

在脚本里用echo "7z x $a $b $c -o$output"时可以显示7z x "/root/Oracle Database 10.2.0.1.0.zip" -o/var
去掉echo,再执行脚本,就是死活不能执行解压操作

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
5 [报告]
发表于 2009-11-30 14:13 |只看该作者
bash:

7z x "$full" -o$output

论坛徽章:
0
6 [报告]
发表于 2009-11-30 14:20 |只看该作者

回复 #5 blackold 的帖子

为什么在脚本里那样就不行
在命令行下用export full="/root/Oracle Database 10.2.0.1.0.zip"
export output=/var
7z x "$full" -o$output
这样就可以呢?

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
7 [报告]
发表于 2009-11-30 14:45 |只看该作者

回复 #6 撒加 的帖子

你试过没有?

论坛徽章:
0
8 [报告]
发表于 2009-11-30 14:47 |只看该作者
找出问题了,在参数传递到7z后,空格没法被处理
把文件名之间的空格都去除,一切OK,我就CA了

论坛徽章:
0
9 [报告]
发表于 2009-11-30 14:50 |只看该作者
很郁闷的说
#!/bin/bash
echo -n "Please set the full path of oracle installation package:"
read full
echo -n "Please set output directory:"     
read output
7z x "$full" -o$output
输入第一个参数输入是"/root/Oracle Database 10.2.0.1.0.zip",就是不能执行解压
但是如果脚本内容是
export full="/root/Oracle Database 10.2.0.1.0.zip"
export output=/var
7z x "$full" -o$output
这样就可以
希望高手能来解答下,我先谢谢了

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
10 [报告]
发表于 2009-11-30 15:27 |只看该作者
我的环境可以。为什么啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP