请教一个在UNIX下执行shell的问题

请教一个在UNIX下执行shell的问题

请教一个在UNIX下执行shell的问题
在Solaris 10环境下要求获得uname -r的返回结果,
预期结果应为
5.10
例如:
使用$inspect=`uname -r`获得结果为空。
使用$inspect=system "uname -r"获得结果为0
使用$inspect= exec "uname -r" 获得的结果为空
现使用的变通的方法是将执行的结果定向到一个临时文件中,然后再从临时文件中提取。

请问有没有更好的方法,直接可以将执行的结果赋予变量??
谢谢!!!
> 使用$inspect=`uname -r`获得结果为空。
谨慎地怀疑一下。
inspect前没有'$'
没有$??
首先,谢谢你们的回复
有$符,
以下为一小段测试程序:
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中没有获取任何信息



QUOTE:
原帖由 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 ...



[Copy to clipboard] [ - ]
CODE:
my $inspect=`uname -r`;
chomp($inspect);

谢谢,问题解决了!!
能解释一下为什么吗?不太理解!
谢谢!!


QUOTE:
原帖由 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".
嗯,明白了,谢谢,
用 print 语句调试变量时,变量左右不加括号是非常愚蠢的做法。

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

调试大段文字时,用

[Copy to clipboard] [ - ]
CODE:
print '-'x65, "\n";
print $foo, "\n";
print '-'x65, "\n";