Ваша проблема исходит от mpstat
. Когда он запускается из командной строки, он выводит время с AM / PM. Это не когда он управляется cron
. Как предположил ennuikiller , это, вероятно, проблема окружающей среды. В моей системе echo $LANG
выдает «en_US.UTF-8» в командной строке, но ничего при запуске в cron
. Эта или какая-то другая переменная окружения влияет на то, как mpstat
выводит время, поэтому, когда вы grep
для "(AM | PM)", оно не находит его.
Кстати, почему бы тебе просто не сделать:
ldsys=$(/usr/bin/mpstat ... )
без присвоения "cmd1", eval
, echo
и трубопроводам sh
?