В приведенном ниже скрипте RES всегда возвращается в нуль; Не уверен, что я делаю неправильно.Ошибка командной строки aix, возвращаемая функцией
Заранее спасибо.
#!/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
'Экс/#/bin/sh' почти наверняка оригинальный Bourne Shell, который не поддерживает' $ (cmd_substitution) '. Попробуйте удалить пробел, ниже, и вместо этого используйте 'backtics'. Также лучше всего понять, что обрабатывается, включить функции трассировки оболочки 'set -vx', чтобы увидеть переменные расширения по мере их появления. Удачи. – shellter
@shelter Нет ... возможно, нет./bin/sh очень часто ksh./bin/bsh (как я помню) - это Bourne Shell. Насколько я помню, есть опция, чтобы установить его. Я считаю, что один из вариантов - даже установить его на ksh93. – pedz