Very simple question


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Very simple question
# 1  
Old 05-09-2013
Question Very simple question

Hi, guys, I'm a new comer here. I'm studying Unix Shell and I met a problem confusing me a lot. Here it is :
script 1:
Code:
#!/bin/sh
# scriptname : do_increment
increment(){
	sum=`expr $1 + 1`
	return $sum		# Return the value of sum to the script.
}
echo -n "The sum is "
increment $1			# Call the increment; pass 5 as a parameter.
				# 5 becomes $1 for the increment function.
echo "ha"
echo $?				# The return value is stored in $?.
echo "The sum is $sum"		# The variable 'sum' is known to the function.
				# and is also known to the main script.

Code:
command-line and result 1:
$ ./do_increment 7
The sum is ha
0
The sum is 8

script 2:
Code:
#!/bin/sh
# scriptname : do_increment
increment(){
	sum=`expr $1 + 1`
	return $sum		# Return the value of sum to the script.
}
echo -n "The sum is "
increment $1			# Call the increment; pass 5 as a parameter.
				# 5 becomes $1 for the increment function.
echo $?  # The return value is stored in $?.
echo "ha"				
echo "The sum is $sum"		# The variable 'sum' is known to the function.
				# and is also known to the main script.

command-line and result 2:
Code:
$ ./do_increment 7
The sum is 8
ha
The sum is 8

My question is : why are the results different just because I put the "echo 'ha'" before or after the "echo $?"

Thx a lot!

Last edited by Scott; 05-09-2013 at 12:13 PM.. Reason: Please use code tags and a DESCRIPTIVE subject title
# 2  
Old 05-09-2013
It's different because $? holds the result of the previous command.

echo 'ha' will return 0, whereas increment 7 will return 8.
This User Gave Thanks to Scott For This Post:
# 3  
Old 05-09-2013
Quote:
Originally Posted by Scott
It's different because $? holds the result of the previous command.

echo 'ha' will return 0, whereas increment 7 will return 8.
OMG, I got u ! Thx
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Red Hat

Syslog.conf: looking for a simple answer on a simple question

Cheers! In /etc/syslog.conf, if an error type is not specified, is it logged anywhere (most preferable is it logged to /var/log/messages) or not? To be more precise I am interested in error and critical level messages. At default these errors are not specified in syslog.conf, and I need to... (6 Replies)
Discussion started by: dr1zzt3r
6 Replies

2. Shell Programming and Scripting

Simple if then else question

I am having trouble making this statement work. I am passing in a number value for the number of days to keep archive logs for and wanted to make sure that it is a number. I have a script that will return 1 for is a number and 0 for is not a number. I also want to make sure that the number is not... (2 Replies)
Discussion started by: gandolf989
2 Replies

3. UNIX for Dummies Questions & Answers

simple question

hi everybody; trying to c unix programming and ive stucked with a problem: simple program filedr=open("tempfile",O_RDWR|O_TRUNC,0); write(filedr,msg1,6); int i; i=read(filedr,msg3,4); it returns 0 bytes read ... why? well if i try to poll() before read , it doesnt indicate POLLHUP or... (4 Replies)
Discussion started by: IdleProc
4 Replies

4. UNIX for Dummies Questions & Answers

Simple question

I had a script in solaris wich i read data, for example: Number 1: _ and the cursor use to be in '_' place because in the code of the script i write: echo "Number 1:\c" but i copy the script to a linux and the cursor 'jump' to the begining of the next line like: Number 1:... (2 Replies)
Discussion started by: lestat_ecuador
2 Replies

5. Shell Programming and Scripting

Simple Question

Hi, Please don't berate me over the simplicity of these questions. I have recently gotten into bash shell scripting and enjoy it quite a bit. One thing I have not found the answer to though is when naming a shell script, what extension is normally used (ie myscript.?)? Also where is the standard... (5 Replies)
Discussion started by: msb65
5 Replies

6. Shell Programming and Scripting

Simple ls question

i am doing ls -la in the out put , first line is as total 41621 What is this total? (2 Replies)
Discussion started by: Saurabh78
2 Replies

7. UNIX for Dummies Questions & Answers

Simple Question

Hi Guys, I've been learning UNIX for the past couple of days and I came across this exercise, I can't get my head around it, so I would be ever so grateful if I could receive some sort of help or direction with this. Create a file with x amount of lines in it, the content of your choice. ... (3 Replies)
Discussion started by: aforball
3 Replies

8. Programming

Simple C question... Hopefully it's simple

Hello. I'm a complete newbie to C programming. I have a C program that wasn't written by me where I need to write some wrappers around it to automate and make it easier for a client to use. The problem is that the program accepts standard input to control the program... I'm hoping to find a simple... (6 Replies)
Discussion started by: Xeed
6 Replies

9. UNIX for Dummies Questions & Answers

Ok simple question for simple knowledge...

Ok what is BSD exactly? I know its a type of open source but what is it exactly? (1 Reply)
Discussion started by: Corrail
1 Replies

10. UNIX for Advanced & Expert Users

Simple Question

Friends, I did following exercise $ echo '' > test $ od -b test $ echo "">test $ od -b test $echo > test $od -b test Every time I got the following output 0000000 012 0000001 But 012 is octal value for new line character . Even though there is no apperent new line character... (6 Replies)
Discussion started by: j1yant
6 Replies
Login or Register to Ask a Question