我有两个文件 $TMP_RPT_FILE 和 $TMP_RPT_FILE1 。在$TMP_RPT_FILE - 仪表读数和$TMP_RPT_FILE1 - 仪表ID 中。我希望如果任何数据出现在这些文件中,它应该打印。我尝试过这种方式,但它不起作用。任何人都可以帮助我解决这个问题吗?
if [ -s "$TMP_RPT_FILE" || -s "$TMP_RPT_FILE1" ]
then
if [ -s "$TMP_RPT_FILE" ]
then
print "Meters with READINGS ONLY for $RPT_DT" > $RPT_FILE
cat $TMP_RPT_FILE | uniq >> $RPT_FILE
fi
if [ -s "$TMP_RPT_FILE1" ]
then
print "Meters with id for $RPT_DT" > $RPT_FILE
cat $TMP_RPT_FILE1 | uniq >> $RPT_FILE
fi
cat $RPT_FILE | \
$MAILCMD -s "$HOST: Meters with READINGS Only and No Profile Data for $RPT_DT" $MAILLIST
fi
答案1
不能在( ) 构造||
中使用 shell 运算符。test
[ ... ]
使用-o
if [ -s "$TMP_RPT_FILE" -o -s "$TMP_RPT_FILE1" ]
或分成 2 个测试。
if [ -s "$TMP_RPT_FILE" ] || [ -s "$TMP_RPT_FILE1" ]