電子メールに添付されているファイルがテキストファイルであることを確認し、そうでない場合はエラーを返そうとします。ただし、テスト中に有効なtext.txtを提供しましたが、「無効な添付ファイル」メッセージが返されました。
send_email()
{
message=
address=
attachment=
validuser=1
echo "Enter the email address: "
read address
echo ""
getent passwd | grep -q $address
if [ "$?" = "0" ]
then
echo -n "Enter the subject of the message: "
read message
echo ""
echo "Enter the file you want to attach: "
read attachment
attachmenttype='file $attachment | cut -d\ -f2'
if [ $attachmenttype = "ASCII" ]
then
mail -s "$message" "$address"<"$attachment"
press_enter
elif [ $attachmenttype = "cannot" ]
then
mail -s "$message" "$address"<"$attachment"
press_enter
else
echo "Invalid attachment"
press_enter
fi
else
echo "Invalid username"
press_enter
fi
}
答え1
変える
attachmenttype='file $attachment | cut -d\ -f2'
次のように書く必要があります。
attachmenttype=$(file "$attachment" | cut -d' ' -f2)
バラよりhttp://wiki.bash-hackers.org/syntax/expansion/cmdsubst
または得る無言のタイプ:
$ file -i "$attachmenttype" | cut -d' ' -f2
text/plain;
そして、ファイルの種類に応じてファイルを処理する方法を決定します。