08-15-2019
Your script works flawlessly in
bash, so I presume you run it with
ksh.
man ksh:
Quote:
[[ expression ]]
Similar to the test and [ ... ] commands (described later), with the following exceptions:
.
.
.
o The single argument form of test, which tests if the argument has non-zero length, is not valid - explicit operators must be always be used, e.g., instead of [ str ] use [[ -n str ]]
BTW, what you are doing is a test for a non-zero string e.g. "/usr/bin/bash", not for the existence of a file or command... Why not test for "executable"?
This User Gave Thanks to RudiC For This Post:
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hello all,
I want to create a script that polls every hour a directory for the existence of a file. The file I look for is a `token` dropped by an external process at the completion of a successful FTP process. I wrote this script `checkfile.ksh`:
#!/usr/bin/ksh
if ] then
mailx... (5 Replies)
Discussion started by: alan
5 Replies
2. Shell Programming and Scripting
Hi,
i am getting following syntax error ...kingly advice why is it coming ??
#!/bin/bash
find . -name "common.log"
if ; then
echo "1"
fi
Himnashu@home /bin
$ ./a.sh
./a.sh: line 7: syntax error near unexpected token `fi'
./a.sh: line 7: `fi' (9 Replies)
Discussion started by: himvat
9 Replies
3. Shell Programming and Scripting
Guys ,
This is an output of my script errored out for "Syntax error near unexpected token `(' " Can someone tell me whats wrong with my script.
Below is my original script pasted.
#!/bin/bash
Script Creation Date 01/21/2010
Author baraghun
... (7 Replies)
Discussion started by: raghunsi
7 Replies
4. UNIX for Advanced & Expert Users
Hi,
I am running the following script through cygwin and getting below mentioned error.
*******************************************
#!/bin/sh
# constants
WORK_DIR="deploy"
INFOFILE="deploy.info"
INTROFILE="Intro.sh"
CMGMT_PKG="com.kintana.cmgmt.deploy"
DEPLOY_PREFIX="mitg"
... (2 Replies)
Discussion started by: MandyR
2 Replies
5. Shell Programming and Scripting
Hi all,
Am very new to Unix and am currently Involved in Migrating some Shell Scripts from AIX 4 to Solaris 10.
While using teh for loop am getting the below error:
$ echo $SHELL
/usr/bin/ksh
$ for file in $(ls *SEBE*)
syntax error: `$' unexpected
while the same works without issue on... (4 Replies)
Discussion started by: paragkhanore
4 Replies
6. Shell Programming and Scripting
I'm going mad not being able to get this to work. im assuming its only a simple mistake but its driving me bonkers trying to find it.
Please if you can help me it would save me pulling my hair out!!
Thanks
#!/bin/bash -xv
#
#Config
name="TEST Server"
+ name='TEST Server'... (6 Replies)
Discussion started by: Fisheh
6 Replies
7. Shell Programming and Scripting
Hi,
I am trying to read the session log through script. But it keeps showing me some error near. I have tried everything. Even tried converting the script using sed command to remove the hidden characters(\r).But nothing seems to be working.Below is the script :
#!/bin/bash
cd... (6 Replies)
Discussion started by: Aryan12345
6 Replies
8. Shell Programming and Scripting
unzip file.zip
if ] ; then
echo "Success"
else
echo "Some failure."
fi ;
I tried many time to detect the unzip error, but it keep show the syntax error wherever how I change the syntac. Hope someone can help me fix the issue, thanks.
Please use code tags next time for your code and... (5 Replies)
Discussion started by: duncanyy
5 Replies
9. Shell Programming and Scripting
I have written this in my script but while running i am getting syntax error `(' unexpected.
unload to "$BACKUP_DIR/n_fac_fid-$clliname" select * from n_fac_fid where fac_accesskey in (select fac_accesskey From n_fac_ap_fid where ap_clli="$clliname");
Any help appreciated. (3 Replies)
Discussion started by: suryanmi
3 Replies
10. UNIX for Beginners Questions & Answers
Dears,
While executing the below script im getting the error at line 30. Please let me know what changes to be done to fix this.
test.sh: line 30: syntax error near unexpected token `done'
test.sh: line 30: ` done '
#!/bin/sh
# Rev. PA1
# author: eillops
# date: 26-04-2018
#
#... (1 Reply)
Discussion started by: Kamesh G
1 Replies
test(1B) SunOS/BSD Compatibility Package Commands test(1B)
NAME
test - condition evaluation command
SYNOPSIS
/usr/ucb/test expression
expression
DESCRIPTION
test evaluates the expression expression and, if its value is true, sets 0 (true) exit status; otherwise, a non-zero (false) exit status
is set. test also sets a non-zero exit status if there are no arguments. When permissions are tested, the effective user ID of the process
is used.
All operators, flags, and brackets (brackets used as shown in the second SYNOPSIS line) must be separate arguments to the test command;
normally these items are separated by spaces.
USAGE
Primitives
The following primitives are used to construct expression:
-r filename True if filename exists and is readable.
-w filename True if filename exists and is writable.
-x filename True if filename exists and is executable.
-f filename True if filename exists and is a regular file. Alternatively, if /usr/bin/sh users specify /usr/ucb before /usr/bin in
their PATH environment variable, then test will return true if filename exists and is (not-a-directory). This is also the
default for /usr/bin/csh users.
-d filename True if filename exists and is a directory.
-c filename True if filename exists and is a character special file.
-b filename True if filename exists and is a block special file.
-p filename True if filename exists and is a named pipe (fifo).
-u filename True if filename exists and its set-user- ID bit is set.
-g filename True if filename exists and its set-group- ID bit is set.
-k filename True if filename exists and its sticky bit is set.
-s filename True if filename exists and has a size greater than zero.
-t[ fildes ] True if the open file whose file descriptor number is fildes (1 by default) is associated with a terminal device.
-z s1 True if the length of string s1 is zero.
-n s1 True if the length of the string s1 is non-zero.
s1 = s2 True if strings s1 and s2 are identical.
s1 != s2 True if strings s1 and s2 are not identical.
s1 True if s1 is not the null string.
n1 -eq n2 True if the integers n1 and n2 are algebraically equal. Any of the comparisons -ne, -gt, -ge, -lt, and -le may be used in
place of -eq.
Operators
These primaries may be combined with the following operators:
! Unary negation operator.
-a Binary and operator.
-o Binary or operator (-a has higher precedence than -o).
(expression) Parentheses for grouping. Notice also that parentheses are meaningful to the shell and, therefore, must be quoted.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWscpu |
+-----------------------------+-----------------------------+
SEE ALSO
find(1), sh(1), attributes(5)
NOTES
The not-a-directory alternative to the -f option is a transition aid for BSD applications and may not be supported in future releases.
If you test a file you own (the -r , -w , or -x tests), but the permission tested does not have the owner bit set, a non-zero (false) exit
status will be returned even though the file may have the group or other bit set for that permission. The correct exit status will be set
if you are super-user.
The = and != operators have a higher precedence than the -r through -n operators, and = and != always expect arguments; therefore, = and !=
cannot be used with the -r through -n operators.
If more than one argument follows the -r through -n operators, only the first argument is examined; the others are ignored, unless a -a or
a -o is the second argument.
SunOS 5.10 1 Apr 1996 test(1B)