将多个变量读入$ FILE

时间:2013-11-06 11:11:27

标签: shell unix

我正在尝试编写一个shell脚本,该脚本读入存储在目录中的文件名,然后将这些文件与另一个目录进行匹配。如果两者匹配,则会向收件人发送电子邮件。

这是我到目前为止所写的内容

 OUTFILES=/remote/output

 cd $OUTFILES
for FILE in XML*.email
do
  RECIPIENT=`head -1 $FILE`
  ATTACHMENT=`head -2 $FILE | tail -1`

echo $RECIPIENT
echo $ATTACHMENT

ATTACHFILES=:/projects/scripts

  cd $ATTACHFILES
         for FILE in *.pdf do
            ATTACH=`ls -1 $FILE`

    if [ $ATTACHMENT=$ATTACH ]; then


        echo $ATTACH

    fi
done

uuencode $ATTACH $ATTACH | mail $RECIPIENT 2>&1

脚本在此行失败

ATTACH=`ls -1 $FILE`

是不是因为我试图在同一个剧本中阅读2 $ FILES

由于

1 个答案:

答案 0 :(得分:0)

尝试在等号周围加上空格:

if [ $ATTACHMENT = $ATTACH ]; then

此外,真的应该在使用变量的所有情况下使用双引号:

OUTFILES=/remote/output

cd "$OUTFILES"
for FILE in XML*.email
do
  RECIPIENT=`head -1 "$FILE"`
  ATTACHMENT=`head -2 "$FILE" | tail -1`

  echo "$RECIPIENT"
  echo "$ATTACHMENT"

  ATTACHFILES=:/projects/scripts

  cd "$ATTACHFILES"
  for FILE in *.pdf
  do
    ATTACH=`ls -1 "$FILE"`

    if [ "$ATTACHMENT" = "$ATTACH" ]
    then
      echo $ATTACH
    fi
  done
done  # I inserted this "done" because as indention shows this was missing.
uuencode "$ATTACH" "$ATTACH" | mail "$RECIPIENT" 2>&1
相关问题