2013-04-26 85 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

相關問題