Sponsored Content
Top Forums UNIX for Dummies Questions & Answers Replace the words in the file to the words that user type? Post 302909828 by Don Cragun on Sunday 20th of July 2014 08:20:38 AM
Old 07-20-2014
Instead of asking us to guess what is wrong with your script, why don't you show us (in CODE tags) the diagnostics that were printed when you ran your script? What output did you get? What output were you expecting? How did you respond to the whiptail commands? (In other words, why not give us the very basic information needed to determine what went wrong?)

You are not checking the exit status of the whiptail command on lines 1 and 2.

You have mismatched double quotes on line 6.

What is the 2nd argument you are passing to your script? How are you invoking your script? What OS are you using? If you aren't specifying a shell when you invoke your script, what is the default shell for your OS?

I would guess that the mismatched quotes on line 6 are your immediate problem and the other issues may be important after you fix line 6.

Is my guess close???

Please get into the habit of using indentation to make the structure of your code obvious.

The whiptail man page says that if the user selects No or Cancel from several of the options that give you choices, the exit status is 1; and if there is an error the exit status is -1. Despite what the whiptail man page says, there is no such thing as a negative exit code. If you want to explicitly look for the exit code that the whiptail man page says is -1, look for 255 instead. Nonetheless, get into the habit of checking for errors from the commands you run.

Also, get into the habit of verifying that user supplied input is appropriate rather than assuming that anything a user types is always correct.

You might want to try something more like:
Code:
#!/bin/ksh
whiptail --title "Abc" --menu "Your choice" 16 78 5 \
	"1)" "ONBOOT" 2>somefile
exitstatus=$?
if [ $exitstatus -eq 0 ]
then	read CHOICE < somefile
elif [ $exitstatus -eq 1 ]
then	echo 'User selected Cancel'
	exit 0
else	echo '1st whiptail failed'
	exit 1
fi
case $CHOICE in
"1)")	ANSWER=$(whiptail --inputbox "YES or NO?" 8 78 "YES" \
		--title "Example dialog" 3>&1 1>&2 2>&3)
	exitstatus=$?
	if [ $exitstatus -eq 0 ]
	then	# You should verify that $ANSWER is legitimate here before using it.
		file=/etc/sysconfig/network-scripts/ifcfg-eth0
		ed -s "$file" <<-EOF
			g/^ONBOOT=/d
			i
			ONBOOT=$ANSWER
			.
			w
			q
		EOF
		# You should check the exit status from ed here.  If ed fails the
		# diagnostic it prints could just be "?" which could leave users
		# wondering what happened.  So, if ed failed, print a clear
		# diagnostic message.
	elif [ $exitstatus -eq 1
	then	echo "ABC"
		exit 0
	else	echo '2nd whiptail failed'
		exit 1
	fi;;
esac

Unfortunately, since I don't have whiptail on my system, this is partially untested code.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to replace a word with a series of words in a file

Hi, I have a Template file 'TL.body' which says as follows: "There are no <FILENAME> files on the server. " The missing file names are identified and stored in a variable. For Eg: MISSFILE="abc.txt def.txt xyz.txt" I want the values of MISSFILE variable to be replaced against... (2 Replies)
Discussion started by: brap45
2 Replies

2. UNIX for Dummies Questions & Answers

sed replace words in file and keep some

lets see if i can explain this in a good way. im trying to replace some words in a file but i need to know what the words are that is beeing replaced. not sure if sed can do this. file.name.something.1DATA01.something.whatever sed "s/./.DATA?????/g" need to know what the first . is... (2 Replies)
Discussion started by: cas
2 Replies

3. Shell Programming and Scripting

Shell script to find out words, replace them and count words

hello, i 'd like your help about a bash script which: 1. finds inside the html file (it is attached with my post) the code number of the Latest Stable Kernel, 2.finds the link which leads to the download location of the Latest Stable Kernel version, (the right link should lead to the file... (3 Replies)
Discussion started by: alex83
3 Replies

4. Shell Programming and Scripting

Splitting Concatenated Words in Input File with Words from a Master File

Hello, I have a complex problem. I have a file in which words have been joined together: Theboy ranslowly I want to be able to correctly split the words using a lookup file in which all the words occur: the boy ran slowly slow put child ly The lookup file which is meant for look up... (21 Replies)
Discussion started by: gimley
21 Replies

5. Shell Programming and Scripting

Splitting concatenated words in input file with words from the same file

Dear all, I am working with names and I have a large file of names in which some words are written together (upto 4 or 5) and their corresponding single forms are also present in the word-list. An example would make this clear annamarie mariechristine johnsmith johnjoseph smith john smith... (8 Replies)
Discussion started by: gimley
8 Replies

6. Shell Programming and Scripting

How count the number of two words associated with the two words occurring in the file?

Hi , I need to count the number of errors associated with the two words occurring in the file. It's about counting the occurrences of the word "error" for where is the word "index.js". As such the command should look like. Please kindly help. I was trying: grep "error" log.txt | wc -l (1 Reply)
Discussion started by: jmarx
1 Replies

7. Shell Programming and Scripting

Gawk gensub, match capital words and lowercase words

Hi I have strings like these : Vengeance mitt Men Vengeance gloves Women Quatro Windstopper Etip gloves Quatro Windstopper Etip gloves Girls Thermobite hooded jacket Thermobite Triclimate snow jacket Boys Thermobite Triclimate snow jacket and I would like to get the lower case words at... (2 Replies)
Discussion started by: louisJ
2 Replies

8. Shell Programming and Scripting

How to replace words in file?

Hi Guys, I have a text where we used Ram in 10 times now I want replace all Ram words by Shyam word then how to do it. (6 Replies)
Discussion started by: aaditya321
6 Replies

9. Shell Programming and Scripting

How to replace some specific words from file?

I have the file like this. cat 123.txt <p> <table border='1' width='90%' align='center' summary='Script output'> <tr><td>text </td> </tr> </table> </p> I want to replace some tags and want the output like below. I tried with awk & sed commands. But no luck. Could someone help me on this? ... (4 Replies)
Discussion started by: thomasraj87
4 Replies

10. Shell Programming and Scripting

Replace particular words in file based on if finds another words in that line

Hi All, I need one help to replace particular words in file based on if finds another words in that file . i.e. my self is peter@king. i am staying at north sydney. we all are peter@king. How to replace peter to sham if it finds @king in any line of that file. Please help me... (8 Replies)
Discussion started by: Rajib Podder
8 Replies
fmt(1)							      General Commands Manual							    fmt(1)

NAME
fmt - format text SYNOPSIS
width] [file...] DESCRIPTION
The command is a simple text formatter that fills and joins lines to produce output lines of (up to) the number of characters specified in the width option. The default width is 72. concatenates the arguments. If none are given, formats text from the standard input. Blank lines are preserved in the output, as is the spacing between words. does not fill lines beginning with a period for compatibility with Nor does it fill lines starting with Indentation is preserved in the output and input lines with differing indentation are not joined (unless is used). can also be used as an in-line text filter for the command: reformats the text between the cursor location and the end of the paragraph. Options recognizes the following options: Crown margin mode. Preserve the indentation of the first two lines within a paragraph and align the left margin of each subsequent line with that of the second line. This is useful for tagged paragraphs. Split lines only. Do not join short lines to form longer ones. This prevents sample lines of code, and other such "formatted" text, from being unduly combined. Fill output lines to up to width columns. WARNINGS
The width option is acceptable for BSD compatibility, but it may go away in future releases. SEE ALSO
nroff(1), vi(1). fmt(1)
All times are GMT -4. The time now is 11:42 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy