Help with IF statement with loop Shell Script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help with IF statement with loop Shell Script
# 1  
Old 09-25-2010
Help with IF statement with loop Shell Script

Hello I am very new to shell and I bought some books and trying to learn it. I started trying to write a script that will take a number and count it down to 1 with commas in between. This number can only be one argument. If lower than one or higher than one argument it sends an error message.

Here is an example of the output:

input: countdown.sh 8
output: 8,7,6,5,4,3,2,1

input: countdown.sh 8 2
output: error: program must be executed with one argument.

Here is what I have so far. I am stuck because I am not sure how you differentiate between arguments and values.
Any help would be appreciated.

Code:
  #!/bin/ksh
  ###############
  # Script name: countdown.sh
  # Case #1: ./countdown.sh  <integer>
  ###########
  # Assign the first command line argument to the variable NUMBER.
  NUMBER=$1
  # One argument must be provided, otherwise don't execute
  if [$NUMBER > 1]
  then
              echo “error: program must be executed with 1 argument.”
                  exit .....
  elif [ $NUMBER=1]
  while [ $NUMBER -gt 0 ]
  do
     printf .......
     if [$NUMBER -gt 1 ]
     then
       printf ", "
     fi
   NUMBER=$(($NUMBER - 1))
  done
  printf

# 2  
Old 09-25-2010
ksh code:
  1. NUMBER=$1
  2. # One argument must be provided, otherwise don't execute
  3. if [ "$#" != 1 ] # $# gives the nb of arguments. There MUST be space after [ and before ]
  4. then
  5.    echo “error: program must be executed with 1 argument.”
  6.    exit
  7. fi # if You already exited, ther's no need to put any else statement
  8. while [ $NUMBER -gt 0 ]
  9. do
  10.    echo -n $NUMBER
  11.    if [ $NUMBER -gt 1 ] # Take care of spaces
  12.    then
  13.       echo -n ", "
  14.    fi
  15.    NUMBER=$(($NUMBER - 1)) # ((NUMBER++)) should work
  16. done
  17. echo
I replaced the printf by echo which is builtin and there's no need of specific formatting.
Just another way to do the same (FYI)
ksh code:
  1. [ "$#" != 1 ] && { echo “error: program must be executed with 1 argument.”; exit; }
  2. for ((i=$1; i>0; i--))
  3. do
  4.    echo -n $i
  5.    ((i>1)) && echo -n ", "
  6. done
  7. echo
# 3  
Old 09-25-2010
Thank you that helped a lot. I have one more question

How do I make this its own line. What I mean is when I execute it prints it with my directory on the same line
./countdown.sh 3
3,2,1/export/home/zero3>

and I want

./countdown.sh 3
3,2,1
/export/home/zero3>

Thank you again.
# 4  
Old 09-25-2010
didn't you forget the echo at the end of the script?
# 5  
Old 09-25-2010
That was it. Thank you very much.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

If statement in a shell script

Please see part of a shell script below. #Move folder to HOT folder echo " moving $PRE_OCR_DIR/$BATCHNAME to $HOT_FOLDER_DIR\n" #chmod -R 777 $PRE_OCR_DIR/$BATCHNAME mv $PRE_OCR_DIR/$BATCHNAME $HOT_FOLDER_DIR I wish to write an if statement around the move that if that if $BATCHNAME... (3 Replies)
Discussion started by: worky
3 Replies

2. Windows & DOS: Issues & Discussions

Loop statement within a batch script

I have to create a couple of files within a directory structure. Filename stays the same, but at the end of each file, the number appears. Example: File needs to be created within directory c:\temp File Name will stay the same (testfile), but extension will increase, starting at 01 - example... (1 Reply)
Discussion started by: HenkTrumpie
1 Replies

3. Shell Programming and Scripting

Case statement in UNIX shell script

have written the below code to check whether the string received from user is a file name or dir using case statement, but its going into default case*). #!/bin/sh #Get a string from user and check whether its a existing filename or not rm str2 rm str3 echo "enter a file \c" read fil... (8 Replies)
Discussion started by: Mohan0509
8 Replies

4. Shell Programming and Scripting

Print statement in shell script

Hi All, when I executed the query in normal unix mode, the output is expected. if I executed the query using shell script, I am not getting the result. not sure whether I need to use dbms_output.put_line or echo. dbms_output.put_line("COUNTRY_CODE"||" "||"SUB_TYPE"||" ... (3 Replies)
Discussion started by: arun888
3 Replies

5. Shell Programming and Scripting

Help with if statement syntax in shell script

I want to make the file test condition a variable ($Prmshn in code below). My goal is to use something like the first three unsuccessful if statetments since the 'if #!/bin/ksh test_input() { Prmshn=${1} InFLNm=${2} ifReq="-$Prmshn $InFLNm" #the following three if statments fail: #if ] ;... (10 Replies)
Discussion started by: ms63707
10 Replies

6. Shell Programming and Scripting

Help With Loop in Case Statement script

I am writing a bash script that asks the user for input and I need it to repeat until the user selects quit.. I dont know how to write the loop for it I searched all over but i still do not get it.. if anyone could help with this it would be greatly apprciated here is my script so far: #!... (2 Replies)
Discussion started by: Emin_Em
2 Replies

7. Shell Programming and Scripting

If then Else statement in shell script

Hi, I am having a shell Script which i need to modify. I am new to shell scripting , needs help. The Logic which needs to be incorporated is as follows :- The script need to check the length of first Line in a data fine and of the length of the file is > 130 then validated the input... (2 Replies)
Discussion started by: mvichare
2 Replies

8. Shell Programming and Scripting

shell script case statement

In a case statement like below : case $rental in "car") echo "For $rental Rs.20 per k/m";; "van") echo "For $rental Rs.10 per k/m";; "jeep") echo "For $rental Rs.5 per k/m";; "bicycle") echo "For $rental 20 paisa per k/m";; *) echo "Sorry, I can not gat a $rental for you";;... (4 Replies)
Discussion started by: sriram003
4 Replies

9. Shell Programming and Scripting

Shell script not processing if statement properly

Hi I am trying to create a shell script that will look for a contracthead file first and if the contract head file does not exist on day1 exit script. Now on day2 if contracthead exists or not run the script uploading files in order such as contract line then contract contact so the... (2 Replies)
Discussion started by: jonathan184
2 Replies

10. Shell Programming and Scripting

Shell script automation using case statement

Hi, I'm trying to write a shell script that has a menu and then dependant on the selection, will automate some samba file transfer. The problem is when I run the code without the case statement it runs fine. but when I put the case statement in the only way I can get the code to run is to... (6 Replies)
Discussion started by: ianf
6 Replies
Login or Register to Ask a Question