Showing posts with label scripting. Show all posts
Showing posts with label scripting. Show all posts

Python scripts vs Bash scripts in Linux

February 11, 2008 5 comments
Almost all Linux users who are at least familiar with bash shell commands will be at home in writing simple bash scripts to automate tasks. For those who do not know how to write a bash script, here is how you do it.

Open a new file in your favorite text editor and save it in any name of your choice but with the extension .sh. For example, let us name it myfirstscript.sh . The sh file extension is not mandatory but is a nice way for us to later remember that this file is a script.
Now in this file (myfirstscript.sh), enter the following line.

#!/usr/bin/bash

This line should always be entered the first thing in any bash script you create. It lets the shell know where to find the bash program.

In some Linux distributions the bash command is located at /bin/bash.


When in doubt, use the which command to find the location as follows :

$ which bash
/usr/bin/bash


# Continuation of the above script ...
# Now lets enter a few commands in this script ...
ls -l
sleep 2
who
sleep 2
w

Nothing spectacular here. Note that sleep is used to pause the execution process for certain time in seconds. Next fire up a console (xterm, gnome-terminal ...) and set the executable bit for the script myfirstscript.sh as follows :

$ chmod u+x myfirstscript.sh

This lets you execute the script by its name as follows :

$ ./myfirstscript.sh

All this may seem easy.

But you can get added benefits if you substitute bash with Python language to write your scripts.

Noah Gift provides compelling reasons to pick up Python programming language skills and start writing your scripts in this language.

If you do not know Python language and is looking for some direction then you should look at the two books Core Python programming and Python phrasebook which will give you a head start in mastering this powerful but easy to learn language.

Make your bash scripts user friendly using - Dialog

October 22, 2005
Dialog is a command line tool that allows you to create professional looking Dialog boxes and other GUI controls using any shell scripting language.

You can easily master shell scripting in just 10 seconds!!


Dialog supports 8 types of GUI controls namely -

  1. Menu boxes
  2. Input boxes
  3. Message boxes
  4. Radio lists
  5. Text boxes
  6. Checklist boxes
  7. Info boxes, and
  8. Yes / No boxes.

Creating a dialog is very easy. The following examples will throw light on its usage.

Input boxes


Input boxes allow the user to enter a string. After the user enters the data, it is written to standard error . You may also redirect the output to a file.

$ dialog --title "Ravi's Input Box" --inputbox "Enter the parameters..." 8 40

As you can see, the options are self explanatory. The last two options 8 and 40 are the height and width of the box respectively.

And this is how the resulting input box looks on your terminal.

Input box
Fig: Inputbox

Text box


A text box takes a file as the parameter and shows the file in a scrollable box.

$ dialog --title "textbox" --textbox ./myfile.txt 22 70

... it shows the file myfile.txt in a textbox.

Text box
Fig: Textbox displaying the file.

Check list


A checklist presents the user with a list of choices. The choices can be toggled ON or OFF individually using the space bar.

$ dialog --checklist "Choose your favorite distribution:" 10 40 3 1 RedHat on 2 "Ubuntu Linux" off 3 Slackware off

In the Dialog command shown above, 10 is the height of the box, 40 - width, 3 is the number of choices, and the rest are the choices numbered 1,2 and 3.

Radio list


A radio list displays a list containing radio buttons. The user can choose only a single option from the set of options.

$ dialog --backtitle "Processor Selection" --radiolist "Select Processor type:" 10 40 4 1 Pentium off 2 Athlon on 3 Celeron off 4 Cyrix off

10 and 40 are the height and width respectively. 4 denotes the number of items in the list, followed by the items.

Info box


An info box is useful for displaying a message while an operation is going on. As an example, see the code below:

$ dialog --title "Memory Results" --infobox "`echo ;vmstat;echo ;echo ;free`" 15 85

Info box
Fig: Information box - listing the vmstat and free listing.

Message box


And the following is a message box.

% dialog --title "Message" --msgbox "You are PROHIBITED from rebooting your machine!!" 8 30

Message box
Fig: Message box

Dialog is usually used inside a script which gives the script a degree of user friendliness.

There is another package called Xdialog which gives the same features for scripts executed in X Windows. Xdialog utility also has additional functionality not found in the dialog utility.

To know more in using the Dialog command line tool in Linux, check its manpage.