亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 接受一個(gè)長字符串作為參數(shù) [打印本頁]

作者: alonerhu    時(shí)間: 2013-03-29 08:52
標(biāo)題: 接受一個(gè)長字符串作為參數(shù)
打算自己做個(gè)短信網(wǎng)關(guān),用來接收?qǐng)?bào)警信息,現(xiàn)在的問題是報(bào)警信息本身是一個(gè)很長的字符串,要直接把這個(gè)字符串插入mysql中,怎么接受著這個(gè)字符串作為參數(shù)呢。
我用了Getopt::Std,可是只能截取最前面的一個(gè)詞,如測試語句:

/usr/bin/printf "恢復(fù): tomcat_8080 正常\n\nTomcat.FileMan\n192.168.10.100\n\n03-28-2013 21:59:38"|xargs /usr/local/icinga/libexec/sendsms.pl -u 133xxxxxxxx -t

,結(jié)果收到的短信就是最前面的  恢復(fù):

perl文件如下:

/usr/local/icinga/libexec/sendsms.pl

#!/usr/bin/perl

use DBI;
use Getopt::Std;
use vars qw($opt_u $opt_t);
getopts('u:t:');

my $dbname = "smsgw";
my $hostname = "192.168.10.62";
my $port = "3306";
my $user = "sms";
my $passwd = "smspw";

$dsn = "DBI:mysqldbnamehostname";
$dbh = DBI->connect($dsn, $user, $passwd);

$dbh->do("insert into outbox (number, text) values ('$opt_u', '$opt_t')";

作者: laputa73    時(shí)間: 2013-03-29 09:44
用'' 引起來,你中間有空格,就被當(dāng)成多個(gè)參數(shù)了
作者: alonerhu    時(shí)間: 2013-03-29 10:04
回復(fù) 2# laputa73

謝謝回復(fù),不知道你說的是不是這樣

    /usr/bin/printf '恢復(fù): tomcat_8080 正常\n\nDepSales.FileMan\n192.168.10.100\n\n03-28-2013 21:59:38'

printf后面用‘’也是一樣的,因?yàn)橛昧斯艿婪?‘|’
關(guān)鍵還是perl接受的時(shí)候自動(dòng)判斷了,只取最前面的詞。
作者: Perlvim    時(shí)間: 2013-03-29 10:22
先使用一個(gè)變量接收這個(gè)字符串,然后進(jìn)行處理
作者: laputa73    時(shí)間: 2013-03-29 14:00
這樣
"'... ... ...'"

作者: alonerhu    時(shí)間: 2013-04-09 09:17
謝謝樓上的的回復(fù),問題基本解決了
xagrs有個(gè)參數(shù)-0可以把空格和回車符號(hào)接受為輸入,如下:
printf “xxxx xxxx xxxx” |xargs -0 /usr/local/icinga/libexec/sendsms.pl




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2