我遇到了一个问题,我的 echo 参数列表太长,想要一些关于如何解决这个问题的想法,或者至少测试条件以便我可以正确处理它,它不会杀死我脚本
for file in `cat filelist`; do
PROTOCOLS1=`egrep -i 'rsh|rsync|remsh' "$file" | egrep -v '^[ | ]*#'`
FIELDS=`echo $PROTOCOLS1|wc -l`
if [[ $FIELDS -gt 1024 ]]; then
echo $file >> $debuglog
else
set -A myarray $PROTOCOLS1
do stuff.....
fi
done
所以问题是,当我的 echo 参数列表太长时,$FIELDS
设置为 null,因此我的测试$FIELDS -gt 1024
总是为真并且不会被捕获。问题是当它进入数组时,它显然太大了,我得到一个下标超出范围的错误,我的脚本退出了。
任何想法都非常感谢。
编辑 9/18
好的,所以问题有点基本。
myserver-v1> echo $variable
myserver-v1> /usr/bin/echo: too many args
我想在我的脚本中对此进行测试
我尝试了以下方法,它有效,但我把所有这些废话都送到了标准输出,它填满了我的调试日志并且很烦人
echo $variable
if [[ $? -ne 0 ]]; then
write to error log
fi
有没有办法测试 echo $variable....而不将其发送到标准输出?我尝试了以下方法,但似乎都不起作用,所以我在这里有点不知所措。
[[ ! `echo $variable ]]
[[ `echo $variable ]]