系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
-
newman0708
- 帖子: 188
- 注册时间: 2007-09-22 13:09
#1
帖子
由 newman0708 » 2008-09-12 14:32
我想在运行时 m3
aaa@btc.sh.cn "*bc"
把当前目录下的*bc都做为附件发送到指定邮箱,但是无法正常运行,
每次都报错。
newman0708@newman0708-desktop:~$ ./script/m3
aaa@btc.sh.cn "*bc"
m2
aaa@btc.sh.cn abc bbc cbc
$attachment= -a "abc" -a "bbc" -a "cbc"
./script/m3: line 65: echo "*bc" | mutt -s "*bc" "
aaa@btc.sh.cn" -a "abc" -a "bbc" -a "cbc": command not found
Mail is sent.
想请教高手指点一下,谢谢
下面是我的shell ,文件名是m3
代码: 全选
#!/bin/bash
subject="$1"
subject=${subject##*/}
content="$1"
attachment=""
help_message()
{
echo "Send attachment to the sender."
echo "Usage1: m2 abc@btc.sh.cn attachment"
echo "Usage2: m2 attachment" ", m2 \"*csv\""
echo
exit 1
}
getAttachs(){
tempattachment=""
for file in `ls $attachment`
do
#echo "file: " $file
tempattachment="$tempattachment -a \"$file\""
done
attachment=$tempattachment
}
if [ $# -lt 1 ] ; then #no parament
help_message
elif [ $# -lt 2 ] ; then #1 parament
#echo "1 parament"
target="bk"
attachment=$1
subject="$1"
subject=${subject##*/}
content="$1"
echo "m2" $attachment
elif [ $# -lt 3 ] ; then #2 paraments
#echo "2 parament"
target=$1
attachment=$2
subject="$2"
subject=${subject##*/}
content="$2"
echo "m2" $target $attachment
fi
getAttachs
echo '$attachment=' $attachment
command="echo \"$content\" | mutt -s \"$subject\" \"$target\" $attachment"
`"$command"`
#echo "$content" | mutt -s "$subject" "$target" -a "$attachment"
echo "Mail is sent."
echo
-
BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
-
联系:
#2
帖子
由 BigSnake.NET » 2008-09-12 19:28
mutt 装了吗
^_^ ~~~
要理解递归,首先要理解递归。
地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
-
newman0708
- 帖子: 188
- 注册时间: 2007-09-22 13:09
#3
帖子
由 newman0708 » 2008-09-12 22:02
BigSnake.NET 写了:mutt 装了吗
mutt装了,
echo "content test" | mutt -s "subject test " "
abc@btc.sh.cn" -a "aaa"
是能够正常发送的。
-
BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
-
联系:
#4
帖子
由 BigSnake.NET » 2008-09-12 22:05
代码: 全选
command="echo \"$content\" | mutt -s \"$subject\" \"$target\" $attachment"
`"$command"`
#echo "$content" | mutt -s "$subject" "$target" -a "$attachment"
干吗不直接写,你这样当然是找不到了
^_^ ~~~
要理解递归,首先要理解递归。
地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
-
newman0708
- 帖子: 188
- 注册时间: 2007-09-22 13:09
#5
帖子
由 newman0708 » 2008-09-12 22:17
BigSnake.NET 写了:代码: 全选
command="echo "$content" | mutt -s "$subject" "$target" $attachment"
`"$command"`
#echo "$content" | mutt -s "$subject" "$target" -a "$attachment"
干吗不直接写,你这样当然是找不到了
直接写是可以正常发送的,这个我试过的。
我想在用的时候,可以把"*bc"这样的带通配符的做为附件,这样可以把相应的文件都变成附件一起发送,
如果直接写的话:
$attachment= -a "abc" -a "bbc" -a "cbc"
echo "$content" | mutt -s "$subject" "$target" "$attachment"
Error sending message, child exited 65 (Data format error.).
./script/m3: line 65: 6367 Done echo "$content"
6368 Segmentation fault (core dumped) | mutt -s "$subject" "$target" "$attachment"
-
BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
-
联系:
#6
帖子
由 BigSnake.NET » 2008-09-12 22:25
newman0708 写了:BigSnake.NET 写了:代码: 全选
command="echo "$content" | mutt -s "$subject" "$target" $attachment"
`"$command"`
#echo "$content" | mutt -s "$subject" "$target" -a "$attachment"
干吗不直接写,你这样当然是找不到了
直接写是可以正常发送的,这个我试过的。
我想在用的时候,可以把"*bc"这样的带通配符的做为附件,这样可以把相应的文件都变成附件一起发送,
如果直接写的话:
$attachment= -a "abc" -a "bbc" -a "cbc"
echo "$content" | mutt -s "$subject" "$target" "$attachment"
Error sending message, child exited 65 (Data format error.).
./script/m3: line 65: 6367 Done echo "$content"
6368 Segmentation fault (core dumped) | mutt -s "$subject" "$target" "$attachment"
... 你这个不能这样写吧
代码: 全选
$attachment= -a "abc" -a "bbc" -a "cbc"
???
代码: 全选
echo '$attachment=' $attachment
command="echo "$content" | mutt -s "$subject" "$target" $attachment"
`"$command"`
改
代码: 全选
echo '$attachment=' $attachment
echo "$content" | mutt -s "$subject" "$target" $attachment
不行?
^_^ ~~~
要理解递归,首先要理解递归。
地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
-
newman0708
- 帖子: 188
- 注册时间: 2007-09-22 13:09
#7
帖子
由 newman0708 » 2008-09-12 22:32
我改成了BigSnake.NET提示的下面这种写法,
echo "$content" | mutt -s "$subject" "$target" $attachment
又报错了,
newman0708@newman0708-laptop:~$ ./script/m3
abc@btc.sh.cn "*bc"
m2
nch@btc.sh.cn abc bbc cbc
file: abc
file: bbc
file: cbc
$attachment= -a "abc" -a "bbc" -a "cbc"
$command= echo "*bc" | mutt -s "*bc" "
nch@btc.sh.cn" -a "abc" -a "bbc" -a "cbc"
Can't stat "abc": No such file or directory
"abc": unable to attach file.
Mail is sent.
还是不行啊!
-
BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
-
联系:
#8
帖子
由 BigSnake.NET » 2008-09-12 22:35
代码: 全选
Can't stat "abc": No such file or directory
没有该文件嘛
^_^ ~~~
要理解递归,首先要理解递归。
地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
-
newman0708
- 帖子: 188
- 注册时间: 2007-09-22 13:09
#9
帖子
由 newman0708 » 2008-09-12 22:45
我在该目录下创建了这3个文件,
它们确实是存在的,
newman0708@newman0708-laptop:~$ ls -l *bc
-rw-r--r-- 1 newman0708 newman0708 4 2008-09-12 22:45 abc
-rw-r--r-- 1 newman0708 newman0708 4 2008-09-12 22:45 bbc
-rw-r--r-- 1 newman0708 newman0708 4 2008-09-12 22:45 cbc
-
eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
#10
帖子
由 eexpress » 2008-09-12 23:30
☎ cat mail-发附件.pl
#!/usr/bin/perl -w
my $file = $ARGV[0];
use Mail::Sender;
$sender = new Mail::Sender;
if ($sender->MailFile({
smtp => 'smtp.163.com',
from => '
xx@163.com',
to =>'
xx@163.com',
to =>`zenity --list --column="邮件地址" --text="选择收件人" --title="发送邮件" xx\@163.com xx\@gmail.com`,
subject => '发送附件',
msg => "请查看附件。",
auth => 'LOGIN', #LOGIN, PLAIN, CRAM-MD5 and NTLM
authid => 'xx',
authpwd => 'xx',
file => "$file",
}) < 0) {
die "$Mail::Sender::Error\n";
}
print "Mail sent OK."
● 鸣学