![]() |
|
|
|
|
|||||||
| Forums | Portal | Register | Forum Rules | FAQ | Contribute | Members List | Arcade | Search | Today's Posts | Mark Forums Read |
| Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts here. |
|
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| question about testing in shell programming(modifications were made) | thungmail | Shell Programming and Scripting | 2 | 04-08-2008 12:51 PM |
| Shell Script to Load data into the database using a .csv file and .ctl file | Csmani | Shell Programming and Scripting | 3 | 05-24-2006 05:09 AM |
| Reading file names from a file and executing the relative file from shell script | anushilrai | Shell Programming and Scripting | 4 | 03-10-2006 02:25 AM |
| Tracing file modifications | gupta_ca | UNIX for Advanced & Expert Users | 3 | 08-03-2005 05:50 AM |
| In Line File Modifications: Search and Replace | Shakey21 | Shell Programming and Scripting | 2 | 11-20-2001 01:21 PM |
|
|
Submit Tools | LinkBack | Thread Tools | Display Modes |
|
#1
|
|||
|
|||
|
my shell script (file modifications)
hi guys
Need some help on my below script #!/bin/sh if [ -f /root/joy/inittab ] then echo "~~:S:wait:/sbin/sulogin" >> /root/joy/inittab else echo "/root/joy/inittab does not exist" fi now the problem is that when i run the above script it runs successfully but when i run it repeatedly the word echo "~~:S:wait:/sbin/sulogin" gets added to the file irrespectively the no of times i run the script. I jst want the line created jst once in the file irrespective of times i run the script.How do i do pls help and thanks in advance reg:ash |
| Forum Sponsor | ||
|
|
|
#2
|
||||
|
||||
|
Hope this helps:
#!/bin/bash if [ -f /root/joy/inittab ] then # check to see if inittab already contains this line grep "~~:S:wait:/sbin/sulogin" /root/joy/inittab >/dev/null # check return code from grep 0 line was found 1 or higher it wasn't errorcode=`echo $?` if [ $errorcode -ne 0 ] then echo "~~:S:wait:/sbin/sulogin" >> /root/joy/inittab fi else echo "inittab does not exist" fi |
|
#3
|
|||
|
|||
|
Just as a stylistic comment, "if" looks at the error code from whatever command you run it on; "if test $?" is a rather roundabout way of saying it.
Code:
#!/bin/bash
if [ -f /root/joy/inittab ]
then
# check to see if inittab already contains this line
if ! grep "~~:S:wait:/sbin/sulogin" /root/joy/inittab >/dev/null
then
echo "~~:S:wait:/sbin/sulogin" >> /root/joy/inittab
fi
else
echo "inittab does not exist"
fi
|
|||
| Google The UNIX and Linux Forums |
| Thread Tools | |
| Display Modes | |
|
|