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