Sign In Start Free Trial
Account

Add to playlist

Create a Playlist

Modal Close icon
You need to login to use this feature.
  • Bash Cookbook
  • Toc
  • feedback
Bash Cookbook

Bash Cookbook

By : Brash, Ganesh Sanjiv Naik
1 (1)
close
Bash Cookbook

Bash Cookbook

1 (1)
By: Brash, Ganesh Sanjiv Naik

Overview of this book

In Linux, one of the most commonly used and most powerful tools is the Bash shell. With its collection of engaging recipes, Bash Cookbook takes you through a series of exercises designed to teach you how to effectively use the Bash shell in order to create and execute your own scripts. The book starts by introducing you to the basics of using the Bash shell, also teaching you the fundamentals of generating any input from a command. With the help of a number of exercises, you will get to grips with the automation of daily tasks for sysadmins and power users. Once you have a hands-on understanding of the subject, you will move on to exploring more advanced projects that can solve real-world problems comprehensively on a Linux system. In addition to this, you will discover projects such as creating an application with a menu, beginning scripts on startup, parsing and displaying human-readable information, and executing remote commands with authentication using self-generated Secure Shell (SSH) keys. By the end of this book, you will have gained significant experience of solving real-world problems, from automating routine tasks to managing your systems and creating your own scripts.
Table of Contents (10 chapters)
close

Making a simple IRC chat bot logger


In this recipe, we will make a simple bot logger. This script will log a few channels as well as handle the pings.

Getting ready

Besides having a Terminal open, you need to have basic knowledge of IRC.

How to do it…

Now, we will write a script for an IRC logging bot. Create the logging_bot.shscript and write the following code in it:

#!/bin/bash
nick="blb$$"
channel=testchannel
server=irc.freenode.net
config=/tmp/irclog
[ -n "$1" ] && channel=$1
[ -n "$2" ] && server=$2
config="${config}_${channel}"
echo "NICK $nick" > $config
echo "USER $nick +i * :$0" >> $config
echo "JOIN #$channel" >> $config
trap "rm -f $config;exit 0" INT TERM EXIT
tail -f $config | nc $server 6667 | while read MESSAGE
do
    case "$MESSAGE" in
        PING*) echo "PONG${MESSAGE#PING}" >> $config;;                                  *QUIT*) ;;
        *PART*) ;;
        *JOIN*) ;;
        *NICK*) ;;
        *PRIVMSG*) echo "${MESSAGE}" | sed -nr "s/...

Unlock full access

Continue reading for free

A Packt free trial gives you instant online access to our library of over 7000 practical eBooks and videos, constantly updated with the latest in tech
bookmark search playlist download font-size

Change the font size

margin-width

Change margin width

day-mode

Change background colour

Close icon Search
Country selected

Close icon Your notes and bookmarks

Delete Bookmark

Modal Close icon
Are you sure you want to delete it?
Cancel
Yes, Delete