2013-04-26 110 views
0

我对C Shell Script(.csh)是绝对新的。我不知道为什么下面的脚本不能正常工作。从C shell脚本中的变量中提取子字符串?

set Version; 
wmic /append: "$Version" wmic os get version; #This prints: Version 
                6.1.7601 
echo $Version; #This does not print anything as $Version is empty 
set subVersion = `echo $Version | awk '{print substr($0,2)}'`; 
echo $subVersion; #This does not print anything 

请帮我知道脚本有什么问题。 谢谢。

更新:看起来像什么被打印实际上是由线wmic /append: "$Version" wmic os get version; &不是echo $Version;。 所以现在的问题是如何从wmic得到输出到变量$Version

回答

0

以下代码有助于将输出捕获到变量。现在它可以做任何与变量:

set Ver = `(wmic os get version)`; 
echo $Ver; 
0

不能测试,但这里有几个选择:

`echo $Version | awk 'BEGIN {FS=".";} {print $1;}'`; 

所以用awk领域分裂功能得到你所需要的。 awk是有点矫枉过正:

set subVersion = ${Version:0:2} 

也应该工作。

+0

嘿user1666959感谢您的回答! 刚刚发现$ Version是一个空字符串。 在shell中显示的内容实际上是由行打印的:** wmic/append:“$ Version”wmic os get version; ** 您能告诉我如何将wmic的输出捕获到变量$ Version中吗? – 2013-04-26 07:16:45

+0

set xx ='wmic ...'应该可以工作。或者像bash那样在shell中设置xx = $(wmic ...) – user1666959 2013-04-29 04:51:49

+0

嘿@user你说什么也行不通!请看我的答案。 – 2013-04-29 07:27:54

相关问题