免费注册 查看新帖 |

Chinaunix

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

请教一个在UNIX下执行shell的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-28 11:39 |只看该作者 |倒序浏览
请教一个在UNIX下执行shell的问题
在Solaris 10环境下要求获得uname -r的返回结果,
预期结果应为
5.10
例如:
使用$inspect=`uname -r`获得结果为空。
使用$inspect=system "uname -r"获得结果为0
使用$inspect= exec "uname -r" 获得的结果为空
现使用的变通的方法是将执行的结果定向到一个临时文件中,然后再从临时文件中提取。

请问有没有更好的方法,直接可以将执行的结果赋予变量??
谢谢!!!

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2008-07-28 13:04 |只看该作者
> 使用$inspect=`uname -r`获得结果为空。
谨慎地怀疑一下。

论坛徽章:
0
3 [报告]
发表于 2008-07-28 13:08 |只看该作者

回复 #1 dingding 的帖子

inspect前没有'$'

论坛徽章:
0
4 [报告]
发表于 2008-07-28 13:15 |只看该作者
没有$??

论坛徽章:
0
5 [报告]
发表于 2008-07-28 13:26 |只看该作者
首先,谢谢你们的回复
有$符,
以下为一小段测试程序:
root:/ftp_dir#more practice1.pl
#! /usr/bin/perl
use strict;
use warnings;
use diagnostics;

my $inspect=`uname -r`;
$inspect=$inspect."OK";
print "$inspect \n";

执行结果如下:
root:/ftp_dir#practice1.pl
5.10       #此处为系统的返回信息
OK          #预期结果应为5.10OK,从现结果可以看出,原$inspect中没有获取任何信息

[ 本帖最后由 dingding 于 2008-7-28 13:30 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2008-07-28 14:06 |只看该作者
原帖由 dingding 于 2008-7-28 13:26 发表
首先,谢谢你们的回复
有$符,
以下为一小段测试程序:
root:/ftp_dir#more practice1.pl
#! /usr/bin/perl
use strict;
use warnings;
use diagnostics;

my $inspect=`uname -r`;
$inspect=$inspec ...


  1. my $inspect=`uname -r`;
  2. chomp($inspect);
复制代码

论坛徽章:
0
7 [报告]
发表于 2008-07-28 14:17 |只看该作者
谢谢,问题解决了!!
能解释一下为什么吗?不太理解!
谢谢!!

论坛徽章:
7
巳蛇
日期:2014-04-10 08:54:57白羊座
日期:2014-04-22 20:06:262015年亚洲杯之沙特阿拉伯
日期:2015-02-10 14:18:532015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之吉达阿赫利
日期:2015-06-02 11:34:112015亚冠之武里南联
日期:2015-06-24 12:13:082015亚冠之阿尔纳斯尔
日期:2015-08-03 09:08:25
8 [报告]
发表于 2008-07-28 14:25 |只看该作者
原帖由 dingding 于 2008-7-28 13:26 发表
首先,谢谢你们的回复
有$符,
以下为一小段测试程序:
root:/ftp_dir#more practice1.pl
#! /usr/bin/perl
use strict;
use warnings;
use diagnostics;

my $inspect=`uname -r`;
$inspect=$inspec ...
5.10       #此处为系统的返回信息

此处并非为系统信息。$inspect="5.10\n",$inspect."OK"="5.10\nOK".

论坛徽章:
0
9 [报告]
发表于 2008-07-28 14:28 |只看该作者
嗯,明白了,谢谢,

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
10 [报告]
发表于 2008-07-28 14:41 |只看该作者
用 print 语句调试变量时,变量左右不加括号是非常愚蠢的做法。

我一般都是 print "[$foo]\n" 这样子调试单行字符串。

调试大段文字时,用
  1. print '-'x65, "\n";
  2. print $foo, "\n";
  3. print '-'x65, "\n";
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP