【问题标题】:store a result of a command into a variable using csh使用 csh 将命令的结果存储到变量中
【发布时间】:2016-02-05 16:29:47
【问题描述】:

我正在尝试将命令的结果存储到一个变量中,以便在我的 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

或者如果有一种更简单的方法,它也不涉及对它开放的变量。

【问题讨论】:

    标签: unix csh


    【解决方案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`
    

    【讨论】:

      猜你喜欢
      • 2013-01-12
      • 1970-01-01
      • 1970-01-01
      • 2020-08-14
      • 2018-06-27
      • 2022-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多