Sponsored Content
Full Discussion: Very simple question
Top Forums Shell Programming and Scripting Very simple question Post 302804941 by franksunnn on Thursday 9th of May 2013 11:08:53 AM
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
 

10 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. 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

5. 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

6. 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

7. 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

8. 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

9. 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

10. 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
sum(1)							      General Commands Manual							    sum(1)

NAME
sum - print checksum and block or byte count of file(s) SYNOPSIS
[file ...] Remarks is obsolescent and should not be used in new applications that are intended to be portable between systems. Use instead (see cksum(1)). DESCRIPTION
calculates and prints to standard output a checksum for each named file, and also prints the size of the file in 512 byte blocks, rounded up. The default algorithm is a 16-bit sum of the bytes in which overflow is ignored. Alternate algorithms can be selected with the and options. Standard input is used if no file names are given. is typically used to verify data integrity when copying files between systems. Options recognizes the following options: Use an alternate algorithm in which the 16-bit sum is right rotated with each byte in computing the checksum. Use the 32-bit cyclical redundancy check (CRC) algorithm used by RETURN VALUE
returns the following values upon completion: All files were processed successfully. One or more files could not be read or some other error occurred. If an inaccessible file is encountered, continues processing any remaining files, but the final exit status is affected. DIAGNOSTICS
Read error conditions are indistinguishable from end of file on most devices; check the block or byte count. WARNINGS
This command is likely to be withdrawn from X/Open standards. Applications using this command might not be portable to other vendors' platforms. The usage of cksum(1) is recommended. SEE ALSO
cksum(1), wc(1). STANDARDS CONFORMANCE
sum(1)
All times are GMT -4. The time now is 01:32 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy