Sponsored Content
Top Forums Shell Programming and Scripting How do I run a shell command in a while loop? Post 302579246 by guitarscn on Monday 5th of December 2011 08:19:09 AM
Old 12-05-2011
How do I run a shell command in a while loop?

The command is:

Code:
sic -h irc.freenode.net 2>&1 | tee -a irc.log

Where sic is an IRC client, and I'm piping the output to tee in order to log my IRC sessions.

I'm trying to handle reconnects by running it in a while loop in the shell process and cat the initial commands into sic's stdin.

I would think to approach this by using a fifo (using the mkfifo(1) command) to redirect sic's stdin, but I'm not sure if there's a more elegant way to reconnect on ping timeouts, kills, servers going down, and just disconnects in general.

How do you suggest I go about doing this?

(I'm using OpenBSD's ksh if that matters.)
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

how to run a shell command from C program?

Hi mates, i am trying to use the C execvp command to run a shell program like this: ..... char input ; printf("enter your command"); scanf("%ds",input) execvp input .... Compilation is ok but when i run it raise the error : Segmentation Error ... your help will be appreciated. ... (1 Reply)
Discussion started by: abdul
1 Replies

2. Shell Programming and Scripting

Run a command on new created shell

Hi I am using a command "script" to capture the output of a command my script is #/bin/sh script filename.txt ./execute_some_script.sh exit exit Now my problem is that when my script run "script filename.txt" its fork a new shell and after the no other command execute The remaining... (2 Replies)
Discussion started by: sushantnirwan
2 Replies

3. Shell Programming and Scripting

Run a command in a special shell

Hi there, Imagine we have to run a command in python shell from a perl script. 1 #!/usr/bin/perl 2 use strict; 3 my @con; 4 @con = `python`; 5 #?????print `print 'salaam'`;???? What's suitable situation for fifth line? Thanks in advance. (4 Replies)
Discussion started by: Zaxon
4 Replies

4. Shell Programming and Scripting

Execute a shell script after a particular command is run

Hi, I need to run a script whenever the Cron file is modified. The requirement is whenever a user modifies the cron file, the script should run automatically. Can you please provide your inputs ? (5 Replies)
Discussion started by: harneet2004us
5 Replies

5. Shell Programming and Scripting

Run DB2 export command in loop

Hi All, I have list of 100 table names in a file, how to read table name from and pass to DB2 export command and run for all tables in loop. Please help me with script. db2 EXPORT TO ~/data_export/<table name from file>.ixf OF IXF MESSAGES messages.txt "SELECT * FROM ITG.<Table Name... (4 Replies)
Discussion started by: srimitta
4 Replies

6. Shell Programming and Scripting

run command in a script shell

Hello, Please i'd like to run command in a script shell , how can i do ? here my commands : cd blcr-build // run command in this rep sudo insmod ./blcr_imports/kbuild/blcr_imports.ko //root sudo insmod ./cr_module/kbuild/blcr.ko //root Thank you. (1 Reply)
Discussion started by: chercheur857
1 Replies

7. UNIX Desktop Questions & Answers

command to run another shell on top of your default shell?

Can someone point me to the right command to to run another shell on top of your default shell? Thanks PS If admin sees this It is not home work. I am old man who wants to learn unix in my spare time. I CURRENTLY DO NOT GO SCHOOL, COLLEGE OR UNIVERSITY. (2 Replies)
Discussion started by: Bill Thompson
2 Replies

8. Shell Programming and Scripting

Script for telnet and run one command kill it and run another command using while loop

( sleep 3 echo ${LOGIN} sleep 2 echo ${PSWD} sleep 2 while read line do echo "$line" PID=$? sleep 2 kill -9 $PID done < temp sleep 5 echo "exit" ) | telnet ${HOST} while is executing only command and exits. (5 Replies)
Discussion started by: sooda
5 Replies

9. Shell Programming and Scripting

How to use a loop for multiple files in a folder to run awk command?

Dear folks I have two data set which there names are "final.map" and "1.geno" and look like this structures: final.map: gi|358485511|ref|NC_006088.3| 2044 gi|358485511|ref|NC_006088.3| 2048 gi|358485511|ref|NC_006088.3| 2187 gi|358485511|ref|NC_006088.3| 17654 ... (2 Replies)
Discussion started by: sajmar
2 Replies

10. Shell Programming and Scripting

Run a shell script in a loop with max number of threads

hi guys. i have a question for you i have a one file and inside this file there are 1000 lines and each line is a linux command running this commands takes long time so i want to create one bash script and run this lines in a loop with max number of threads for example i want to run... (2 Replies)
Discussion started by: avtaritet
2 Replies
POE::Component::IRC::Cookbook::Seen(3pm)		User Contributed Perl Documentation		  POE::Component::IRC::Cookbook::Seen(3pm)

NAME
POE::Component::IRC::Cookbook::Seen - Implement the 'seen' command SYNOPSIS
This little bot tracks the whereabouts of users and allows you to retrieve that information on command. 19:59:51 * seen_bot (n=hinrik@pool-71-164-43-32.chrlwv.east.verizon.net) has joined #test_channel1 19:59:55 <foo> bar 20:00:16 * seen_bot has quit (Remote closed the connection) 20:00:27 * seen_bot (n=hinrik@pool-71-164-43-32.chrlwv.east.verizon.net) has joined #test_channel1 20:00:29 <literal> seen_bot: seen seen_bot 20:00:29 <seen_bot> literal: I last saw seen_bot at Mon Sep 22 20:00:27 2008 joining #test_channel1 20:00:34 <literal> seen_bot: seen foo 20:00:40 <seen_bot> literal: I last saw foo at Mon Sep 22 19:59:56 2008 on #test_channel1 saying: bar 20:00:45 <literal> seen_bot: seen baz 20:00:48 <seen_bot> literal: I haven't seen baz DESCRIPTION
#!/usr/bin/env perl use strict; use warnings; use IRC::Utils qw(parse_user lc_irc); use POE; use POE::Component::IRC::State; use POE::Component::IRC::Plugin::AutoJoin; use POE::Component::IRC::Plugin::BotCommand; use Storable; use constant { USER_DATE => 0, USER_MSG => 1, DATA_FILE => 'seen', SAVE_INTERVAL => 20 * 60, # save state every 20 mins }; my $seen = { }; $seen = retrieve(DATA_FILE) if -s DATA_FILE; POE::Session->create( package_states => [ main => [ qw( _start irc_botcmd_seen irc_ctcp_action irc_join irc_part irc_public irc_quit save )] ], ); $poe_kernel->run(); sub _start { my ($kernel, $heap) = @_[KERNEL, HEAP]; my $irc = POE::Component::IRC::State->spawn( Nick => 'seen_bot', Server => 'irc.freenode.net', ); $heap->{irc} = $irc; $irc->plugin_add('AutoJoin', POE::Component::IRC::Plugin::AutoJoin->new( Channels => [ '#test_channel1', '#test_channel2' ] )); $irc->plugin_add('BotCommand', POE::Component::IRC::Plugin::BotCommand->new( Commands => { seen => 'Usage: seen <nick>' } )); $irc->yield(register => qw(ctcp_action join part public quit botcmd_seen)); $irc->yield('connect'); $kernel->delay_set('save', SAVE_INTERVAL); return; } sub save { my $kernel = $_[KERNEL]; warn "storing "; store($seen, DATA_FILE) or die "Can't save state"; $kernel->delay_set('save', SAVE_INTERVAL); } sub irc_ctcp_action { my $nick = parse_user($_[ARG0]); my $chan = $_[ARG1]->[0]; my $text = $_[ARG2]; add_nick($nick, "on $chan doing: * $nick $text"); } sub irc_join { my $nick = parse_user($_[ARG0]); my $chan = $_[ARG1]; add_nick($nick, "joining $chan"); } sub irc_part { my $nick = parse_user($_[ARG0]); my $chan = $_[ARG1]; my $text = $_[ARG2]; my $msg = 'parting $chan'; $msg .= " with message '$text'" if defined $text; add_nick($nick, $msg); } sub irc_public { my $nick = parse_user($_[ARG0]); my $chan = $_[ARG1]->[0]; my $text = $_[ARG2]; add_nick($nick, "on $chan saying: $text"); } sub irc_quit { my $nick = parse_user($_[ARG0]); my $text = $_[ARG1]; my $msg = 'quitting'; $msg .= " with message '$text'" if defined $text; add_nick($nick, $msg); } sub add_nick { my ($nick, $msg) = @_; $seen->{lc_irc($nick)} = [time, $msg]; } sub irc_botcmd_seen { my ($heap, $nick, $channel, $target) = @_[HEAP, ARG0..$#_]; $nick = parse_user($nick); my $irc = $heap->{irc}; if ($seen->{lc_irc($target)}) { my $date = localtime $seen->{lc_irc($target)}->[USER_DATE]; my $msg = $seen->{lc_irc($target)}->[USER_MSG]; $irc->yield(privmsg => $channel, "$nick: I last saw $target at $date $msg"); } else { $irc->yield(privmsg => $channel, "$nick: I haven't seen $target"); } } AUTHOR
Hinrik Oern Sigur`sson, hinrik.sig@gmail.com perl v5.14.2 2011-12-07 POE::Component::IRC::Cookbook::Seen(3pm)
All times are GMT -4. The time now is 10:59 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy