亚洲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:mysql
dbname
hostname";
$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