Sponsored Content
Top Forums Shell Programming and Scripting how to avoid 'unexpected operator' error when comparing 2 strings Post 302443549 by methyl on Monday 9th of August 2010 07:58:44 AM
Old 08-09-2010
@agama

The "==" is not valid in standard unix "ksh" , and your example gives "Syntax error at line 4 : `==' is not expected.".

I have also checked Bourne Shell and Posix Shell. Still invalid.
However it might be valid in a Conditional Expression in ksh93 ?

The O/P is using "/bin/sh" which could be Bourne Shell or Posix Shell depending on what Operating System version we have here. We can deduce that it is not "bash" or "ksh". Safest to assume Bourne Shell


The rules:

Between single square brackets [...] the expression is evaluated according the the rules for "test" (or the shell emulation of "test").

Between double square brackets [[...]]the expression is evaluated according to the rules for Conditonal Expressions (a separate section of the "ksh" manual).

There is some overlap in the syntax for "test" and a "Conditional Expression" but in standard unix "ksh" none of them include "==".



On the subject of "diff". The "diff -q" syntax is not valid in standard unix. I think you'll find the equivalent "cmp -s" in most of versions.

This is developing into another classic thread where nobody has the same Operating System yet everybody assumes that unix/Linix commands are universal when they are not.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

comparing two strings

Hi How do i compare two strings in shell script. Below is an example but I am not getting the desired output, plz help if then echo success fi I am not getting the desired output if I do this. plz help (24 Replies)
Discussion started by: ragha81
24 Replies

2. UNIX for Advanced & Expert Users

Comparing strings

I have two strings a=Mar22 b=may21 how can I compare them Is this fine if then; . ... else .... fi or if then (2 Replies)
Discussion started by: yakyaj
2 Replies

3. Shell Programming and Scripting

Comparing Two Strings

Hi All, While I am trying to run below code I Am getting the exception like ./abs.sh: line 102: syntax error near unexpected token `then' ./abs.sh: line 102: ` then' The Code Snippet is: if then cat $file1 | sed -e... (8 Replies)
Discussion started by: Anji
8 Replies

4. Shell Programming and Scripting

comparing strings

i have a string in a file which gets repeated number of times like below: rpttxt("abc") . . rpttxt("REP_TITLE") rpttxt("BOS_TITLE") . . . . and so on using awk or grep how can i comapre the string( as the second half keeps varying) and store it in a temporary variable? I am using the... (3 Replies)
Discussion started by: agarwal
3 Replies

5. Shell Programming and Scripting

comparing 2 strings

hi i have 2 strings. i want to compare the strings. please help (2 Replies)
Discussion started by: satish@123
2 Replies

6. Shell Programming and Scripting

comparing two strings

hi All i am facing prob in comparing two strings that have two word. below is the code snippet. checkValidates="file validates" file3_name="file" if then echo "file" $file3_name "is validated successfully" fi when i run this i get the error as -bash: [: too many arguments ... (1 Reply)
Discussion started by: infyanurag
1 Replies

7. Shell Programming and Scripting

syntax error: `-a' unexpected operator/operand in IF

When i tyr this, it gives me a syntax error...i tried removing quotes,removing spaces,replacing -eq with '='.. Can somebody suggest that is the problem? if ]; then (4 Replies)
Discussion started by: dba.admin2008
4 Replies

8. UNIX for Dummies Questions & Answers

How do I search for 2 strings (AND operator) ?

I have a need to search for files containing 2 strings as in (AND operator). No one at my site seems to know if it is possible. There is only documentation for the "or' operator. I know I can do a search, copy all the matched files into a temp directory & do the second search in the temp... (14 Replies)
Discussion started by: Kartheg
14 Replies

9. Shell Programming and Scripting

ksh-script "arithmetic syntax error" comparing strings

Hi all, Iīve already searched the forum but canīt find what i am doing wrong. I am trying to compare two variables using ksh under red hat. The error I get is: -ksh: .: MDA=`md5sum /tmp/ftp_dir_after_transfer | cut -d' ' -f1 ` MDB=`md5sum /tmp/ftp_dir_before_transfer | cut -d' ' -f1 `... (3 Replies)
Discussion started by: old_mike
3 Replies

10. UNIX for Dummies Questions & Answers

Strings comparing incorrectly

Hello I'm very new to Linux and shell scripting so I only know basic stuff. I'm making a script with the purpose of finding the longest string or word in a file. Here's what I got so far: #!/bin/bash longest="" for i in $(strings -n $1); do if ] then longest=$i fi done echo $longest... (4 Replies)
Discussion started by: SCB
4 Replies
sh(1)							      General Commands Manual							     sh(1)

NAME
sh - overview of various system shells SYNOPSIS
POSIX Shell option] ... string] [arg ...] option] ... string] [arg ...] Korn Shell option] ... string] [arg ...] option] ... string] [arg ...] C Shell [command_file] [argument_list ...] Key Shell DESCRIPTION
Remarks The POSIX .2 standard requires that, on a POSIX-compliant system, executing the command activates the POSIX shell (located in file on HP-UX systems), and executing the command produces an on-line manual entry that displays the syntax of the POSIX shell command-line. However, the command has historically been associated with the conventional Bourne shell, which could confuse some users. To meet stan- dards requirements and also clarify the relationships of the various shells and where they reside on the system, this entry provides com- mand-line syntax and a brief description of each shell, and lists the names of the manual entries where each shell is described in greater detail. The Bourne shell is removed from the system starting with HP-UX 11i Version 1.5. Please use the POSIX shell as an alternative. Shell Descriptions The HP-UX operating system supports the following shells: POSIX-conforming command programming language and command interpreter residing in file Can execute commands read from a terminal or a file. This shell conforms to current POSIX standards in effect at the time the HP-UX system release was introduced, and is similar to the Korn shell in many respects. Similar in many respects to the Korn shell, the POSIX shell contains a history mechanism, supports job control, and provides various other useful features. Korn-shell command programming language and commands interpreter residing in file Can execute commands read from a terminal or a file. This shell, like the POSIX shell, contains a his- tory mechanism, supports job control, and provides various other useful features. A command language interpreter that incorporates a command history buffer, C-language-like syntax, and job control facilities. Restricted version of the POSIX shell command interpreter. Sets up a login name and execution environment whose capabilities are more controlled (restricted) than normal user shells. restricted version of the Korn-shell command interpreter Sets up a login name and execution environment whose capabilities are more controlled (restricted) than normal user shells. An extension of the standard Korn Shell that uses hierarchical softkey menus and context-sensitive help. +--------------+--------------------+ | To obtain: | Use the command: | +--------------+--------------------+ | POSIX Shell | /usr/bin/sh ... | | Korn Shell | /usr/bin/ksh ... | | C Shell | /usr/bin/csh ... | | Key Shell | /usr/bin/keysh | +--------------+--------------------+ These shells can also be the default invocation, depending on the entry in the file. See also chsh(1). WARNINGS
Many manual entries contain descriptions of shell behavior or describe program or application behavior similar to ``the shell'' with a ref- erence to ``see sh(1)''. SEE ALSO
For more information on the various individual shells, see: keysh(1) Key Shell description. ksh(1) Korn Shell description. sh-posix(1) POSIX Shell description. csh(1) C Shell description. sh(1)
All times are GMT -4. The time now is 05:07 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy