11-22-2005
can't TEST multiple arguments for a file
Hi,
I'm new to scripting and teaching myself how to code. Using Korn, I coded this one return "True" if a file is executable and it's not empty. However, each time I pass a file that is 777 which contains data, the script returns "false".
if [ -x -a ! -s "$1" ]
then
echo "true"
else
echo "false"
fi
By the way..
I was successful using AND when validating strings instead of a file
What am I missing?
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
I'm writing a shell script with bash ver 2.05b in linux. My script has a test with 5 arguments like this:
until
do
.....(some codes)
done
but it raise an error:
[: too many arguments
I tried some ways but not ok.
Could you give a way to work around this. Thanks... (4 Replies)
Discussion started by: baton
4 Replies
2. Shell Programming and Scripting
Hello everyone,
I have two types of files in a directory:
*.txt
*.info
I have a perl script that uses these two files as arguments, and produces a result file:
perl myScript.pl abc.txt abc.xml
How can I run this script (in a "for" loop , looping through both types of files)... (4 Replies)
Discussion started by: ad23
4 Replies
3. Shell Programming and Scripting
hi all
i am creating a script to ping hosts and then do a nslookup.
So what needs to happen is that i type the script name with an argument eg:
zong (script name) 172.x.x.x (IP)
at the moment i have got it to take on argument, but idealy i would like it to take more than 1 argument. can you... (1 Reply)
Discussion started by: brian112
1 Replies
4. Shell Programming and Scripting
How do I prevent the message "too many arguments" to appear when using this script?
name="one two three four five six seven"
if test $name=""
then
echo "Empty variable"
else
echo "Value assigned"
fi
output:
bash: test: too many arguments
Value assigned (2 Replies)
Discussion started by: locoroco
2 Replies
5. Shell Programming and Scripting
I have a switch statement, and I want to have two options performing the same thing. For example, if $opt matches "-fb" or "--fbase", I want to perform the same operation. How can I include various matches in "case" ?
switch ($opt)
case "-T":
set Atpath = $par
set opt_tpath =... (8 Replies)
Discussion started by: kristinu
8 Replies
6. UNIX for Dummies Questions & Answers
Hi all ,
I want to pass contents from a file say f1 as arguments to a sql query which has In statement using a script
example
select * from table_1 where login in ( `cat f1`) ;
will this work or is there any other way to do it. (1 Reply)
Discussion started by: zozoo
1 Replies
7. UNIX for Dummies Questions & Answers
Ok hope my vocab is right here, i'm trying to write multiple sets of arguments to another file for example:
I have a script that accepts four arguments and sends them to a another file
$write.sh it then out in
so the file receiver.txt would contain this:
it then out in
what... (2 Replies)
Discussion started by: austing5
2 Replies
8. Shell Programming and Scripting
I am developing a script where 3 other scripts are included.
This is a graph related script.
COMPLETE IDEA:
-There are 3 different graph scripts. I would like to create a master graph with all 3 in one.
-User chooses the type of graph
-User is asked to enter the required auguments (... (7 Replies)
Discussion started by: newkid.7955
7 Replies
9. Shell Programming and Scripting
I am passing 3 runtime arguments to a shell script
$path crtl1 crtl2
the crtl files contains data(filename|date|count)
filename.txt|02/05/2010|10
The path contains the original data file,the code should fetch (filename|date|count) from original data file and it should match... (7 Replies)
Discussion started by: Prashanth B
7 Replies
10. Shell Programming and Scripting
Hi,
I have a problem where i have to hit multiple URL that are stored in a text file (input.txt) and save their output in different text file (output.txt) somewhat like :
cat input.txt
http://192.168.21.20:8080/PPUPS/international?NUmber=917875446856... (3 Replies)
Discussion started by: mukulverma2408
3 Replies
TEST(1) BSD General Commands Manual TEST(1)
NAME
test, [ -- condition evaluation utility
SYNOPSIS
test expression
[ 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 expressions:
-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. This operator is retained for compatibility with previous versions of this pro-
gram. Do not rely on its existence; use -L instead.
-k file True if file exists and its sticky bit is set.
-n string True if the length of string is nonzero.
-p file True if file is a named pipe (FIFO).
-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 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 indi-
cates that file can be searched.
-z string True if the length of string is zero.
-L file True if file exists and is a symbolic link.
-O file True if file exists and its owner matches the effective user id of this process.
-G file True if file exists and its group matches the effective group id of this process.
-S file True if file exists and is a socket.
file1 -nt file2
True if file1 exists and is newer than file2.
file1 -ot file2
True if file1 exists and is older than file2.
file1 -ef file2
True if file1 and file2 exist and refer to the same file.
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.
s1 < s2 True if string s1 comes before s2 based on the ASCII value of their characters.
s1 > s2 True if string s1 comes after s2 based on the ASCII value of their characters.
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 IEEE Std 1003.2 (``POSIX.2'')
section 4.62.4, 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.
STANDARDS
The test utility implements a superset of the IEEE Std 1003.2 (``POSIX.2'') specification.
BSD
May 31, 1993 BSD