Shell 将多个变量读入$FILE

Shell 将多个变量读入$FILE,shell,unix,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 A

我正在尝试编写一个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$文件吗


谢谢

尝试在等号周围加空格:

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

我无法获取此命令
ATTACHFILES=:/projects/scripts
。路径中有一个冒号,您正在对该路径执行cd。