Visit The New, Modern Unix Linux Community


code placement


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting code placement
# 1  
code placement

I'm sorry if something like this has already been posted, but I didn't find anything like it.

I'm using ksh The code that I've come up with will initially print what I want, but will then keep repeating the second number. I'm just trying to teach myself and can't seem to find the code to work. Basically, when you enter a number at the command line, it should print that number and each number after it, but not 0. See the attachment for what I have.
# 2  
Code:
#num=$1
#echo $num
while [ "$1" -gt 0 ]; do
 echo $num
 ((num=$1-1))
done

So I assume $1 is a positive number... but the value of $1 doesn't change, so the loop is going to loop forever! Plus that syntax for substracting one from $num won't work. Try this:
Code:
num=$1
while [ $num -gt 0 ]; do
 echo $num
 num=`expr $num - 1`
done

# 3  
Yes, $1 is supposed to be a positive number. I inserted your code that you gave me but it gives me an error about not having a command argument. I tested it with Countdown 8, it would print out the 8 then tell me I need a command argument. I appreciate your help. Back to the books and trying new things. Thank you again!
# 4  
When I use the code exactly as below, I get the numbers 1 to 8, each printing on their own line, in decreasing order. Does it tell you anything else in that error? Post it exactly as you see it.
Code:
if [ "$1" ]
then
num=$1
while [ $num -gt 0 ]; do
 echo $num
 num=`expr $num - 1`
done
else
 echo You did it wrong
fi

# 5  
Quote:
Originally posted by oombera

((num=$1-1))


Plus that syntax for substracting one from $num won't work.
That syntax will work fine in most shells. It was introduced in ksh. It is now in most modern shells including bash.

((num=num-1))
is actually much better than:
num=`expr $num - 1`
unless your shell happens to have expr as a builtin.
# 6  
Quote:
Originally posted by oombera
Does it tell you anything else in that error? Post it exactly as you see it.
Code:
if [ "$1" ]
then
num=$1
while [ $num -gt 0 ]; do
 echo $num
 num=`expr $num - 1`
done
else
 echo You did it wrong
fi

My command line: /Practice>Countdown 8
Output: 8
Countdown[6]: $num: unknown test operator

this is what it says when executed
# 7  
Quote:
Originally posted by Perderabo
That syntax will work fine in most shells. It was introduced in ksh. It is now in most modern shells including bash.

((num=num-1))
is actually much better than:
num=`expr $num - 1`
unless your shell happens to have expr as a builtin.
Thanks Perderabo.. didn't realize there was such an easy way! Try this, scott:
Code:
if [ "$1" ]; then
  num=$1
  while [ $num -gt 0 ]; do
    echo $num
    ((num=num-1))
  done
else
  echo You did it wrong
fi

It looks like your only mistake was ((num=$1-1)) because it causes an endless loop.

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #593
Difficulty: Medium
C is a statically typed language so variables must be declared along with their types before using them.
True or False?

9 More Discussions You Might Find Interesting

1. Programming

Parameters placement on stack in C

I am trying to illustrate the reverse order of parameters on the stack when passed to a function in C: #include <stdio.h> void p(int p1, int p2, double p3) { printf("params:\n" "1) %p offset = %li\n" "2) %p offset = %li\n" ... (5 Replies)
Discussion started by: migurus
5 Replies

2. Shell Programming and Scripting

[solved] awk: placement of user-defined functions

Hi folks, is there any recommendation, especially from a point of performance, about where to place a user-defined function in awk, like in BEGIN{} or if it is only need once at the end in END{}? Or doesn't it matter at all since, awk is so clever and only interprets it once, wherever it is... (3 Replies)
Discussion started by: zaxxon
3 Replies

3. UNIX for Advanced & Expert Users

Unix linked-list placement

Hi, I am programming in kernel, and I want to use a double linked list that holds infos that every process could access and modify THIS list. So, I suppose it is a 'global' variable since every process(thread) can reach it, I am wondering where to put it? by changing some of the kernel files? (1 Reply)
Discussion started by: louisTan
1 Replies

4. Cybersecurity

Snort/NTOP Placement

I have been asked to place 2 (1 NTOP & 1 SNORT) boxes within our network as part of our tool kit for network monitoring and Intrusion detection. Out network is very simplistic and it layed out like this: internet | | Cisco 1811 Router (8x Layer 2 switch ports) ... (0 Replies)
Discussion started by: metallica1973
0 Replies

5. Programming

How to override Window Manager placement of windows.

Hello, everyone! Is it possible to create a window in X11/WM, but override the position Window Manager sets for the window. I'm not sure how to use 'override_redirect' flag, and what to do in order to use it. But the problem with the flag is also that it probably will disable all decorations... (2 Replies)
Discussion started by: AOne
2 Replies

6. Solaris

Data placement in SVM

Is it possible to place the data in inner or outer edge with SVM ( solaris volume manager ) or VxVM like we can do in AIX LVM ? (1 Reply)
Discussion started by: fugitive
1 Replies

7. Shell Programming and Scripting

Kinda a noob: Automatic window sizing and placement

I am attempting to create a script that runs automatically upon logging in and opens and places windows in appropriate places. I have the script running such that it starts during login, but I cannot get things how and where I want them. This should be relatively simple, I just can't figure it out... (7 Replies)
Discussion started by: wydileie
7 Replies

8. UNIX Desktop Questions & Answers

Controlling icon placement?

Hi, I'm using xterm and aixterm with Mwm on AIX, and having trouble controlling icon placement when minimising windows. Basically when I run an xterm or aixterm I want to be able to specify where the icon will be if minimised. The man page mentions the "#geometry Geometry" option to aixterm,... (1 Reply)
Discussion started by: cunningdavid
1 Replies

9. AIX

Aixterm icon placement?

Hi, I'm using xterm and aixterm with Mwm on AIX, and having trouble controlling icon placement when minimising windows. Basically when I run an xterm or aixterm I want to be able to specify where the icon will be if minimised. The man page mentions the "#geometry Geometry" option to aixterm,... (1 Reply)
Discussion started by: cunningdavid
1 Replies

Featured Tech Videos