does $line end with "\n" ?
Main Topics
Browse All TopicsI have a script that needs to execute a command that has been tested and works on a command line, but it gives me this error:
sh: -c: line 1: syntax error near unexpected token `|'
sh: -c: line 1: ` | sendxmpp --chatroom nbyloff@conference.chatter
I was trying to execute it like this.
system("echo $line | sendxmpp --chatroom testroom\@conference.chatt
I also escaped the pipe like \| but that still gave me the same error.
This is the final command that works manually:
echo "Test Message" | sendxmpp --chatroom testroom\@conference.chatt
Also, if it is a problem with escaping, would I need to somehow escape out all the contents of $line as well?
This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.
Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.
If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.
Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.
Access the answers to your technology questions today.
30-day free trial. Register in 60 seconds.
Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Try it out and discover for yourself.
30-day free trial. Register in 60 seconds.
Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.
The script tails apache logs. here is two examples of $line:
192.168.240.1 - - [04/May/2009:11:01:17 -0500] "GET /admin/ HTTP/1.1" 200 4251
192.168.240.1 - - [03/Jun/2009:12:27:51 -0500] "GET /server.php?sid=11&uid=use
If $line contains "\n" that you want echoed, and $line does not contain ' then you might do
system("echo '$line' | ...")
if $line contains "\n" that you don't want echoed, and you can modify $line, you can
chomp $line;
if $line may contain "\n" or ' that you want sent to sendxmpp. then you might do
open(SHELL,"|-", "sendxmpp","--chatroom",'n
print SHELL $line;
close SHELL;
This worked perfectly.
open(SHELL,"|-", "sendxmpp","--chatroom",'n
print SHELL $line;
close SHELL;
This is for a jabber server at work. We have multiple development (or QA) servers that we don't really have access to, so I wrote a script to tail all the files and send errors to specific chat rooms to make for quicker debugging in different environments. This command was the last piece. Thank you!
Business Accounts
Answer for Membership
by: ozoPosted on 2009-08-14 at 13:47:29ID: 25102203
what was in $line ?