01-22-2012
They advise not to use them, but the specification also says they have been marked obsolescent and that script should be converted:
Quote:
The XSI extensions specifying the -a and -o binary primaries and the '(' and ')' operators have been marked obsolescent. (Many expressions using them are ambiguously defined by the grammar depending on the specific expressions being evaluated.) Scripts using these expressions should be converted to the forms given below. Even though many implementations will continue to support these obsolescent forms, scripts should be extremely careful when dealing with user-supplied input that could be confused with these and other primaries and operators. Unless the application developer knows all the cases that produce input to the script, invocations like:
test "$1" -a "$2"
should be written as:
test "$1" && test "$2"
test
This User Gave Thanks to Scrutinizer For This Post:
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi,
Actually i have written one test.sh (shell program) in bash.
Here i have a variables $a which stored the value package1.
Now I want to write a regular expression inside the if command that "if $a variable contains letter p in the begining of the value package1 then it is coming true.... (5 Replies)
Discussion started by: sunitachoudhury
5 Replies
2. Shell Programming and Scripting
I'm pretty sure I already know the answer to this, but I want to make sure I'm not overlooking anything. I'm working on a log monitoring script and every 10 lines I want to display a summary of events. The thing is, there are a lot of possible events, that likely won't have happened, so I only want... (0 Replies)
Discussion started by: DeCoTwc
0 Replies
3. Shell Programming and Scripting
hi,
I have written a script to search MAC address in a given directory.
MAC address would be in format XX.XX.XX.XX.
The digits contain hexadecimal numbers.
For this i have used grep as follows.
grep -rn '^\{1,2\}\.\{1,2\}\.\{1,2\}\.\{1,2\}\$' *
This is not working as required.... (17 Replies)
Discussion started by: flamingo_l
17 Replies
4. Shell Programming and Scripting
Just started learning bash ,and I am confused with sintaksis
line 16: syntax error near unexpected token `else'
thanks
#!/bin/bash
echo -n "Enter: "
read num
if(($(echo ${#num}) == 0 ))
then
echo No arguments passed.Try again
elif
rem=$(echo $num | tr -d )
... (7 Replies)
Discussion started by: lio123
7 Replies
5. Shell Programming and Scripting
Hi,
How to use values in one for loop to other for loop.
say "$sf_rel" variable has values "2011/W2 2011/G2" I want to use these values in inner for loop to process properly.
$branch variable has G2 and 6
What is happening is outer for loop $i has 2011/W2 it is entering into inner... (3 Replies)
Discussion started by: Anjan1
3 Replies
6. Shell Programming and Scripting
I'm would to create a script that would give me the results below.
Please note the spaces in the log file are actually commas(",".)
Log file Data
0:00 21:15 899 43 31 12 25.39
0:00 21:20 736 34 19 15 35.39
0:00 21:20 776 41 28 13 ... (3 Replies)
Discussion started by: ravzter
3 Replies
7. Shell Programming and Scripting
Hi,
i want to check if a variable var1 is not a or b or c
pseudo code:
If NOT (var1 = a or var1 = b or var1 = c)
then
...
fi
I want to use POSIX complaint Korn shell, and for string comparison
For the following code, logical.sh
#!/usr/bin/ksh
var="j"
echo "Var : $var"
if ! { || ||... (12 Replies)
Discussion started by: ysrini
12 Replies
8. UNIX for Dummies Questions & Answers
# check host value regex='^(||1|2|25)(\.(||1|2|25)){3}$' if ')" != "" ]; then if ]; then echo host $host not found exit 4 fi elif ]; then echo $host is an invalid host address exit 5 fi
espeacailly the top regex part?
---------- Post updated at 06:58 PM ---------- Previous update was... (1 Reply)
Discussion started by: kevin298
1 Replies
9. Shell Programming and Scripting
Folks - newbie bash coder here and I'd like to get your help to make the code below work. As you can see, I was trying to count the total number of lines with the 3rd value >= 15 in a file and wanted to make the threshold "15" configurable, but apparently the $THRESHOLD value was not populated... (3 Replies)
Discussion started by: bashzipper
3 Replies
10. UNIX for Dummies Questions & Answers
I am using the following nested loop
for i in {1..3}
do
for y in {1..3}
do
if ;
then
echo P0${i}R${y}.fas
mv P0${i}R${y}.fas P${i}R${y}.fas
read -t 5
fi
done
done
I was wondering if I can use a character such as * or ? instead of my second variable y. I tried R in... (3 Replies)
Discussion started by: Xterra
3 Replies
TEST(1) General Commands Manual TEST(1)
NAME
test - condition evaluation utility
SYNOPSIS
test expression
DESCRIPTION
The test utility evaluates the expression and, if it evaluates to true, returns a zero (true) exit status; otherwise it returns 1 (false).
If there is no expression, test also returns 1 (false).
All operators and flags are separate arguments to the test utility.
The following primaries are used to construct expression:
-b file
True if file exists and is a block special file.
-c file
True if file exists and is a character special file.
-d file
True if file exists and is a directory.
-e file
True if file exists (regardless of type).
-f file
True if file exists and is a regular file.
-g file
True if file exists and its set group ID flag is set.
-h file
True if file exists and is a symbolic link.
-n string
True if the length of string is nonzero.
-p file
True if file is a named pipe
-r file
True if file exists and is readable.
-s file
True if file exists and has a size greater than zero.
-t [file_descriptor]
True if the file whose file descriptor number is file_descriptor (default 1) is open and is associated with a terminal.
-u file
True if file exists and its set user ID flag is set.
-w file
True if file exists and is writable. True indicates only that the write flag is on. The file is not writable on a read-only file
system even if this test indicates true.
-x file
True if file exists and is executable. True indicates only that the execute flag is on. If file is a directory, true indicates
that file can be searched.
-z string
True if the length of string is zero.
string
True if string is not the null string.
s1 = s2
True if the strings s1 and s2 are identical.
s1 != s2
True if the strings s1 and s2 are not identical.
n1 -eq n2
True if the integers n1 and n2 are algebraically equal.
n1 -ne n2
True if the integers n1 and n2 are not algebraically equal.
n1 -gt n2
True if the integer n1 is algebraically greater than the integer n2 .
n1 -ge n2
True if the integer n1 is algebraically greater than or equal to the integer n2 .
n1 -lt n2
True if the integer n1 is algebraically less than the integer n2 .
n1 -le n2
True if the integer n1 is algebraically less than or equal to the integer n2 .
These primaries can be combined with the following operators:
! expression
True if expression is false.
expression1 -a expression2
True if both expression1 and expression2 are true.
expression1 -o expression2
True if either expression1 or expression2 are true.
(expression)
True if expression is true.
The
-a operator has higher precedence than the -o operator.
GRAMMAR AMBIGUITY
The test grammar is inherently ambiguous. In order to assure a degree of consistency, the cases described in the IEEE Std 1003.2
("POSIX"), section D11.2/4.62.4, standard are evaluated consistently according to the rules specified in the standards document. All other
cases are subject to the ambiguity in the command semantics.
RETURN VALUES
The test utility exits with one of the following values:
0 expression evaluated to true.
1 expression evaluated to false or expression was missing.
>1 An error occurred.
BUGS
Named pipes are not implemented in 2.11BSD.
STANDARDS
The test function is expected to be IEEE Std 1003.2 ("POSIX") compatible.
7th Edition March 13, 1995 TEST(1)