Sponsored Content
Full Discussion: arguments expected error
Top Forums Shell Programming and Scripting arguments expected error Post 72045 by vino on Wednesday 18th of May 2005 06:29:05 AM
Old 05-18-2005
Two things that came to my notice.

Since you are using case statements, you should close the case statements with esac

Your script would now look like this:
Code:
do
   case "$1" in                  #gets arguments
   -t: shift; text="$1" ;;
   esac
done

Regarding your use of shift indicates that the script requires you to input arguments. From the man pages we have the following:

Code:
 shift [n]
              The  positional  parameters  from n+1 ... are renamed to $1 ....
              Parameters represented by the numbers  $#  down  to  $#-n+1  are
              unset.   n  must  be a non-negative number less than or equal to
              $#.  If n is 0, no parameters are changed.  If n is  not  given,
              it  is assumed to be 1.  If n is greater than $#, the positional
              parameters are not changed.  The return status is  greater  than
              zero if n is greater than $# or less than zero; otherwise 0.

Also your sciprt has a $1 which actually in scipt-terminology refers to the first argument.

No arguments + your script = "arguments expected"

It is always a good idea to check whether the user has provided any arguments at all.

$# gives you the count of the number of arguments provided at command line.

You script should be tweaked like this:

Code:
#! /bin/sh

if [ $# -eq 0 ] ; then
   echo "No text"
else
while :
do
   case "$1" in                  #gets arguments
   -t: shift; text="$1" ;;
   shift
done
shift
   echo "Text"
fi

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

ERROR: ./launch_full_backup.sh[18]: Syntax error at line 28 : `else' is not expected.

Help please! :confused: I have the following error with the following file and the emails are not arriving to the email, any idea please? ERROR: ./launch_full_backup.sh: Syntax error at line 28 : `else' is not expected. FECHA=`date +%d%m%y%H%M`... (2 Replies)
Discussion started by: villenan
2 Replies

2. Shell Programming and Scripting

syntax error near un expected token =~

Hello. Please help with this code. Returns an error message "syntax error near unexpected token =~. Conditional binary operator expected. if " ]] || " ]] then echo "Enter only valid numbers" fi (2 Replies)
Discussion started by: Pauline mugisha
2 Replies

3. Shell Programming and Scripting

Receiving error: ./ang.ksh[35]: 0403-057 Syntax error at line 116 : `done' is not expected.

Hi All I am quite new to Unix. Following is a shell script that i have written and getting the subject mentioned error. #!/bin/ksh #------------------------------------------------------------------------- # File: ang_stdnld.ksh # # Desc: UNIX shell script to extract Store information.... (3 Replies)
Discussion started by: amitsinha
3 Replies

4. Shell Programming and Scripting

fi not expected error

I'm trying this script and I keep getting a 'fi' not expected error: #!/bin/sh #TD=0 CT=0 cat P7748 |while read LINE do # Check to see if the LINE is non-empty, and has a <td> tag in it. if # Increase the TD counter by 1 CT=`echo "$CT+1" |bc` ... (2 Replies)
Discussion started by: dba_frog
2 Replies

5. Shell Programming and Scripting

if stmt argument expected error

CT=0 while read LINE do # Check to see if the LINE is non-empty, and has a <td> tag in it. if then # Increase the TD counter by 1 CT=`echo "$CT+1"` fi done <test.htmthrows this error: ksh: test: argument expected test.htm <tr> <td>text</td... (4 Replies)
Discussion started by: dba_frog
4 Replies

6. Shell Programming and Scripting

error : test: argument expected

Hello all, I am trying to figure out why i am getting an error while executing the script...altought it seems like its work...but still get the test arguement error...any help would be appericiate...this script basically connects to any oracle db ( just have to pass db name to it)... (4 Replies)
Discussion started by: abdul.irfan2
4 Replies

7. Shell Programming and Scripting

Error: integer expression expected

root@server01 # df -h | grep /tmp | awk {'print $3}' 252M root@server01 # root@server01 # cat /usr/local/tmpchk.sh #!/bin/sh x=`df -h | grep /tmp | awk {'print $3}'` if ; then rm -fr /tmp/somefolder/ else echo "its small" (2 Replies)
Discussion started by: fed.linuxgossip
2 Replies

8. Programming

Please Help ! ----> error: expected ‘=’,

#include<stdio.h> int main{ char *fl; fl=(char*)malloc(150); strcat(fl,"/tmp/OV/"); printf("\nInside fl--->%s\n",fl); return 0; } I wrote a simple program as above. I got the error error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token Please help me out ! I am... (4 Replies)
Discussion started by: gameboy87
4 Replies

9. Shell Programming and Scripting

ERROR: `(' is not expected.

Hi All, I have written a shell script which works all right on bash shell, but when it comes to execute it using ksh on AIX it gives the following error::( bash$ /bin/ksh getShortInfo.sh getShortInfo.sh: syntax error at line 26 : `(' unexpected Could you please indicate what is... (4 Replies)
Discussion started by: Elvis
4 Replies

10. UNIX for Beginners Questions & Answers

Passing Arguments to shell script from file is not working as expected.

Hi All, I have below simple shell script in cloudera quick start vm cenos 6 which copy file from source to destination. # file_copy.sh source_dir = ${source_dir} target = ${target_dir} cp source_dir target and my parameter file is like below #parameter_file.txt source_dir =... (4 Replies)
Discussion started by: Narasimhasss
4 Replies
getopt(1)							   User Commands							 getopt(1)

NAME
getopt - parse command options SYNOPSIS
set -- ` getopt optstring $ * ` DESCRIPTION
The getopts command supersedes getopt. For more information, see NOTES below. getopt is used to break up options in command lines for easy parsing by shell procedures and to check for legal options. optstring is a string of recognized option letters; see getopt(3C). If a letter is followed by a colon (:), the option is expected to have an argument which may or may not be separated from it by white space. The special option - is used to delimit the end of the options. If it is used explicitly, getopt recognizes it; otherwise, getopt generates it; in either case, getopt places it at the end of the options. The posi- tional parameters ($1 $2 ...) of the shell are reset so that each option is preceded by a - and is in its own positional parameter; each option argument is also parsed into its own positional parameter. EXAMPLES
Example 1: Processing the arguments for a command The following code fragment shows how one might process the arguments for a command that can take the options -a or -b, as well as the option -o, which requires an argument: set -- `getopt abo: $*` if [ $? != 0 ] then echo $USAGE exit 2 fi for i in $* do case $i in -a | -b) FLAG=$i; shift;; -o) OARG=$2; shift 2;; --) shift; break;; esac done This code accepts any of the following as equivalent: cmd -aoarg filename1 filename2 cmd -a -o arg filename1 filename2 cmd -oarg -a filename1 filename2 cmd -a -oarg -- filename1 filename2 ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWcsu | +-----------------------------+-----------------------------+ |CSI |enabled | +-----------------------------+-----------------------------+ SEE ALSO
intro(1), getopts(1), getoptcvt(1), sh(1), shell_builtins(1), getopt(3C), attributes(5) DIAGNOSTICS
getopt prints an error message on the standard error when it encounters an option letter not included in optstring. NOTES
getopt will not be supported in the next major release. For this release a conversion tool has been provided, namely, getoptcvt. For more information, see getopts(1) and getoptcvt(1). Reset optind to 1 when rescanning the options. getopt does not support the part of Rule 8 of the command syntax standard (see intro(1)) that permits groups of option-arguments following an option to be separated by white space and quoted. For example, cmd -a -b -o "xxx z yy" filename is not handled correctly. To correct this deficiency, use the getopts command in place of getopt. If an option that takes an option-argument is followed by a value that is the same as one of the options listed in optstring (referring to the earlier EXAMPLES section, but using the following command line: cmd -o -a filename getopt always treats it as an option-argument to -o; it never recognizes -a as an option. For this case, the for loop in the example shifts past the filename argument. SunOS 5.10 7 Jan 2000 getopt(1)
All times are GMT -4. The time now is 08:43 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy