aix shell从函数返回值得到的麻烦

时间:2013-12-19 22:59:37

标签: shell unix aix

在下面的脚本中,RES总是返回任何内容;不知道我做错了什么。

提前致谢。

#!/bin/sh
set -x
chk_for() {
    RES=0
    RES= $(head -1 $1 | fgrep -c "Formula" >&2) 
    echo "@@@@" || $RES
    return $RES
    }

for X in /home/wstandke/webcatstats/rep/AnalysisWork/*; do
    chk_for "$X" 

    if [$? == 1]
        then 
           echo "1st line is heading"
            file=$(basename $X)
            echo "fullname=" || $X
            echo "filename=" || $file
           mv $X /tmp/$file
            sed 1d /tmp/$file > $X
            rm /tmp/$file
    fi
done
cat /home/wstandke/webcatstats/rep/AnalysisWork/*  >/tmp/Analysis.report

1 个答案:

答案 0 :(得分:2)

您将fgrep的输出重定向到stderr,因此不会为RES分配任何值。

另外,不确定这是否是 问题,但RES=之后可能会将空白分配给RES

尝试将相关行更改为:

RES=$(head -1 $1 | fgrep -c "Formula")