Shell 将多个变量读入$FILE
我正在尝试编写一个shell脚本,它读取存储在一个目录中的文件名,然后匹配另一个目录中的这些文件。如果两者匹配,则会向收件人发送电子邮件 这就是我到目前为止写的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
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。