12-08-2008
Single brackets.
Please see "man test" for a good explanation about testing file types.
Single square bracket syntax "[ expr ]" is exactly the same as "test expr".
In many shells "test" is actually a shell builtin.
Within "test" the -a is the logical AND operator (as distinct from -o which is the logical OR operator).
Now for double brackets!
There is a formal unix shell syntax involving "[[ expression ]]" which has much overlap with "test". There is a good explanation in "man ksh" . The term between the brackets is a Conditional Expression which is also explained at great length in "man ksh" - including the use of double-ampersand for logical AND "&&", and double pipe for logical OR "||".
Personally I only find use for "[[ expression ]]" in "while" loops. Others may differ.
while [[ expression ]]
do
done
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
I would like to substitute a phrase which contains square brackets.
change TO
how?
Thanks (2 Replies)
Discussion started by: gilead29
2 Replies
2. UNIX for Dummies Questions & Answers
what is the rationale behind putting double square brackets in an if clause?
for e.g.
if ] || ] || ];
then
echo some fields are null
fi (5 Replies)
Discussion started by: napolayan
5 Replies
3. Shell Programming and Scripting
Hi
First apologies if this has been raised before.
I've got the following in a ksh script:
if ]
For some reason this does not work. But if I remove the double square brackets to:
if
This works.
I thought ksh supported the ]. Or is there more to it?
Thanks in advance. (3 Replies)
Discussion started by: tsu3000
3 Replies
4. Shell Programming and Scripting
Hi,
I just came across an interesting shell script syntax like the one below:
] && (trap 'rm -rf ${WORK_DIR}/*.$$; echo "\n\nInterrupted !!\n\n"; exit 4' 1 2 3 15)
Can someone please explain the code snippet above?
The trap command bit is fine but ] && is the hazy part.
Generally we use an... (2 Replies)
Discussion started by: King Nothing
2 Replies
5. UNIX for Dummies Questions & Answers
Hello,
Can someone please explain to me the following line,
] && break
I do not understand why two test square brackets are used.
Thanks,
Shantanu
---------- Post updated at 03:38 PM ---------- Previous update was at 03:35 PM ----------
And, also why there's a $ before (echo $c |... (5 Replies)
Discussion started by: Shan_u2005
5 Replies
6. Shell Programming and Scripting
hi guys,
i'm writing a script that looks for a unquie id in a file and replaces a string between two square brackets on the same line as the unquie id:
.......
.......
0001 zz 43242 replace this text] name
0002 sd 65466 UK] country
.......
.......
how can i find line with id 0001... (6 Replies)
Discussion started by: zaff
6 Replies
7. Shell Programming and Scripting
Hi All,
I have a text file which looks like this:
computer programming
systems engineering
I want to get rid of these square brackets and also the text that is inside these brackets. So that my final text file looks like this:
computer programming
systems engineering
I am using... (3 Replies)
Discussion started by: shoaibjameel123
3 Replies
8. UNIX for Dummies Questions & Answers
Hi frieds, I don't understand the difference between single square bracket and double square brackets in a IF condition.
Ex.
if ;
then
RETURNJOB=1
else
RETURNJOB=0
fi
It run, but this
if ];
then
RETURNJOB=1
else
RETURNJOB=0
fi (4 Replies)
Discussion started by: dogshort
4 Replies
9. Shell Programming and Scripting
Hello all,
I have the following problem:
$ cat infile
this is spam and i need this too
this is spam and i need this too
$ perl -nwe '$_ =~ /]+ \]+)\]\]*\]? (\+)$/; print "$1 - $2\n";' infile
i need this - too
i need this - and i need this too
I am not sure how many occurences of... (13 Replies)
Discussion started by: zaxxon
13 Replies
10. Shell Programming and Scripting
Hi All,
Hope you all are doing good. Yesterday in my project i came across a scenario which i can not guess why it was working in one region and why it was not in another region. Please find my issue below.
I am using AIX version 6.0 of UNIX in my project, in shell scripting i have the... (1 Reply)
Discussion started by: mad man
1 Replies
test(1) General Commands Manual test(1)
Name
test - test conditional expression
Syntax
test expr
[ expr ]
Description
The command evaluates the expression expr. If the value of expr is true, the command returns a zero exit status; otherwise, it returns a
nonzero exit status. The command also returns a nonzero exit status if no arguments are specified.
Options
The following primitives are used to construct expr:
-r file Tests if the file exists and is readable.
-w file Tests if the file exists and is writable.
-f file Tests if the file exists and is not a directory.
-d file Tests if the file exists and is a directory.
-s file Tests if the file exists and has a size greater than zero.
-t [ fildes ] Tests if the open file, whose file descriptor number is fildes (1 by default), is associated with a terminal device.
-z s1 Tests if the length of string s1 is zero.
-n s1 Tests if the length of the string s1 is nonzero.
s1 = s2 Tests if the strings s1 and s2 are equal.
s1 != s2 Tests if the strings s1 and s2 are not equal.
s1 Tests if s1 is not the null string.
n1 -eq n2 Tests if number1 equals number2.
n1 -ge n2 Tests if number1 is greater than or equal to number2.
n1 -gt n2 Tests if number1 is greater than number2.
n1 -le n2 Tests if number1 is less than or equal to number2.
n1 -lt n2 Tests if number1 is less than number2.
n1 -ne n2 Tests if number1 is not equal to number2.
These primitives can be combined with the following operators:
!expr Negates evaluation of expression.
expr -a expr Tests logical and of two expressions.
expr -o expr Tests logical or of two expressions.
( expr... ) Groups expressions.
The -a operator takes precedence over the -o operator. Note that all the operators and flags are separate arguments to Note also that
parentheses are meaningful to the Shell and must be escaped.
See Also
find(1), sh(1), test(1sh5)
test(1)