2015-11-05 122 views
2

我試圖將命令的結果存儲到變量中,所以我可以很好地將它與一些文本一起顯示在一個很長時間內沒有它顯示輸出,然後換行然後是我的文本,在我的csh腳本中。使用csh將命令的結果存儲到變量中

#! /bin/csh -f 


if ("$1" == "-f" && $#argv == 1) then 
    grep 'su root' /var/adm/messages.[0-9] | cut -c 21-250 
    grep 'su root' /var/adm/messages 
else if($#argv > 0) then 
    echo "Usage : [-f]" 
else 
    grep 'su root' /var/adm/messages.[0-9] /var/adm/messages | wc -l 
    printf "failed su attempts between Nov 02 and Oct 28\n" 
endif 

腳本

grep 'su root' /var/adm/messages.[0-9] /var/adm/messages | wc -l 

這個命令給了我21當我運行它,我想21被存儲在一個變量。

這樣我就可以顯示

21 failed su attempts between Nov 02 and Oct 28 

輸出,而不是

21 
failed su attempts between Nov 02 and Oct 28 

,或者孤單,不涉及變量持開放的態度過於更簡單的方法。

回答

1

您可以使用set和反引號(``)。像

set count=`grep 'su root' /var/adm/messages.[0-9] /var/adm/messages | wc -l` 
printf "$count failed su attempts between Nov 02 and Oct 28\n" 

printf "%s failed su attempts between Nov 02 and Oct 28\n" "$count" 

沒有變量,像

printf "%s failed su attempts between Nov 02 and Oct 28\n" \ 
    `grep 'su root' /var/adm/messages.[0-9] /var/adm/messages | wc -l` 
相關問題