Shell scripting

 
Thread Tools Search this Thread
Homework and Emergencies Emergency UNIX and Linux Support Shell scripting
# 8  
Old 12-11-2010
Shell scripting bridges and enhances the space between application programming and the UNIX OS. Many trivial one- or few-time tasks are better done in a wrapper script than in code, making the testing of the code bits much simpler and the code more robust. Also, unplanned activities are easily, predictable and safely accommodated by modified scripts and unmodified code, like catch up after an outage and similar production support tasks. Shell scripting is really the way to go for all sorts of ad-hoc reports, including data analysis to support design decisions by business case.

I write a lot of simple C to support shell with high performance features that are otherwise lacking, so the shell script can do high volumes of data by having C bits do the heavy lifting. Error handling: detecting, alerting and reporting is better done in a shell script, so:
  • it is not firing during code development,
  • can be changed easily if there is too much or too little being heard from the production run,
  • if the code core dumps, the parent script can report an error.
Many housekeeping tasks for the system or the application space are better done in scripting, like compressing, backing up and purging old files. Scripting skills are mostly common with keyboard shell skills, so there is synergy in them: most tricks yo learn interactively can support a script that runs unattended or automates that interactive task.

It is not necessary to master every fine detail of any shell (which you will forget if you do not use), but pick a good one like ksh or bash, and look for the sweet spots you can imagine using. Some are very powerful and subtle, like the ability of (..) sub-shells to either concatenate output or divide input or both without handling a single byte, by the inheritance of FDs. For instance, these two scripts to pass a header line and sort the remaining lines are equivalent, but the second is:
  • lower overhead, as tail with a pipe does not handle every byte
  • the data is written and read an extra time,
  • lower latency as the data is not all stored before being processed,
  • puts less stress on /tmp space,
  • does not leave a junk file behind if interrupted.
Code:
some_code >/tmp/xxx.tmp
head -1 /tmp/xxx.tmp
tail +2 /tmp/xxx.tmp | sort
rm -f /tmp/xxx.tmp

some_code |(
line
exec sort
)


Last edited by DGPickett; 12-11-2010 at 12:25 PM..
# 9  
Old 12-11-2010
Quote:
Originally Posted by solaris_user
Maybe stupid quuestion but how much is important to learn shell scripting ?
On a UNIX system? Pretty important. That terminal you're typing commands into all the time is a shell, and it's capable of much more useful and complicated work than just running something when you hit enter. You can use real constructs, even when just typing into the console directly.

It can do a lot of work for you. Some simple shell constructs are exceedingly useful:
Code:
# do something, then only if it succeeds, do something else
install-update && /sbin/reboot
# do something, and if it fails, do something else
mangle-the-world || putback-the-world
# do a repetitive task without typing it 9 times
for N in 1 2 3 4 5 6 7 8 9
do
        something-repetitive $N
done

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Shell script to read lines in a text file and filter user data Shell Programming and Scripting

sxsaaas (3 Replies)
Discussion started by: VikrantD
3 Replies

2. Shell Programming and Scripting

help me in Shell Scripting

Hi there please have a look at the code..i want to create Using a named pipe. Run a find in the background starting in the working directory While this is happening wait for input from the user to ask him which file to find. If the user does not enter any data in 10 seconds ask the user again.... (1 Reply)
Discussion started by: kattak1511
1 Replies

3. Shell Programming and Scripting

Shell scripting

Hi, if in a network there are lots of PCs connected with either windows or linux as operating system.Then what will be the shell script for the same and also if the PC has linux in it then we have to find if it is occupied or unoccupied. If the PC has windows in it then we have to find if it is... (6 Replies)
Discussion started by: akansha singh
6 Replies

4. UNIX for Dummies Questions & Answers

Shell Scripting

Hey I have a data in the file named as outputFile.txt. The data is in the format 123456,12345678912345,400,09/09/09,INACTIVE. I want this output without commas ie 12345612345678912345400090909INACTIVE. Please tell me what to do and clear explain all the terms, as I am new to it. (6 Replies)
Discussion started by: sampandey31
6 Replies

5. Web Development

Perl scripting or shell scripting?

i am going to study any one of the scripting languages mentioned above(shell 0r perl scripting) . Which is having more scope for a fresher? (1 Reply)
Discussion started by: Anna Hussie
1 Replies

6. What is on Your Mind?

Shell Scripting vs Perl scripting

Gents, I have been working in a Solaris/Unix environment for about 9 months. I took some linux classses online before getting the job. But, I am not very good at scripting. I want to learn how to script. Do you think that I should start with Shell scripting or Perl? I wanted to continue with... (2 Replies)
Discussion started by: Pouchie1
2 Replies

7. Android

Android Scripting Environment: Shell Scripting and Android

I just upgraded to Android 2.2 from 2.1. The GPS issue that was troublesome in 2.1 seems to have been fixed. Some of web browsing seems faster, but it could just be my connection is better today ;) Flash works in some browsers but not very good and it is too slow for Flash apps designed for... (0 Replies)
Discussion started by: Neo
0 Replies

8. What is on Your Mind?

Shell scripting vs Perl scripting

Hi all, I would like to start developping some good scripting skills. Do you think it would be best to start with shell scripting or Perl? I already got a fundation, really basics, in perl. but I am wondering what would be best to be good at first. Can you please help me determine which one to... (14 Replies)
Discussion started by: Pouchie1
14 Replies

9. Shell Programming and Scripting

Call Shell scripting from Perl Scripting.

Hi How to call a shell scripting through a Perl scripting? Actually I need some value from Shell scripting and passes in the Perl scripting. So how can i do this? (2 Replies)
Discussion started by: anupdas
2 Replies

10. Shell Programming and Scripting

difference between AIX shell scripting and Unix shell scripting.

please give the difference between AIX shell scripting and Unix shell scripting. (2 Replies)
Discussion started by: haroonec
2 Replies
Login or Register to Ask a Question