Sponsored Content
Homework and Emergencies Emergency UNIX and Linux Support Waiting for wildcard filename to exists in while loop Post 302917000 by RudiC on Saturday 13th of September 2014 04:17:01 AM
Old 09-13-2014
The while doesn't - it couldn't care less. The test -f does - and has to. It needs exactly one single file, or it will issue an error msg. Don't use the double quotes as they prevent the shell from evaluating the wild card.
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Find wildcard .shtml files in wildcard directories and removing them- How's it done?

I'm trying to figure out how to build a small shell script that will find old .shtml files in every /tgp/ directory on the server and delete them if they are older than 10 days... The structure of the paths are like this: /home/domains/www.domain2.com/tgp/ /home/domains/www.domain3.com/tgp/... (1 Reply)
Discussion started by: Neko
1 Replies

2. Shell Programming and Scripting

test if a filename exists with specified string (ksh)

I'm trying to do a simple if statement that tests if a filename exists with a user specified string. So say I have these files: Assigned_1day_after_due_chuong Assigned_1day_after_due_gallen Assigned_1day_after_due_heidenre and i'm running a script and want to know if a... (6 Replies)
Discussion started by: bob122480
6 Replies

3. Shell Programming and Scripting

filename in loop

i have a filename_1=file1.dat filename_2=file2.dat i want to pass the filename in a loop for((i=1;i<=2;i++) do awk{print $1} $filename_$i.dat done how should i pass the filename (2 Replies)
Discussion started by: r_t_1601
2 Replies

4. Shell Programming and Scripting

ksh(!93) for loop with wildcard and empty directory

I'm sure this is by design, but using something like for f in dir/* do echo $f done produces unexpected (to me) results if run against an empty directory. I'd have expected it to not execute the loop, but it actually calls it with f set to 'dir/*'. Now I know that I'm trying to protect... (2 Replies)
Discussion started by: spr00t
2 Replies

5. Shell Programming and Scripting

Use the information from filename in a for loop

hi here is my script set -vx b=`cat /info_d05/visage/SrcFiles/Customer_Master/Log_Files/last_date.txt` for name in /info_d05/visage/SrcFiles/Customer_Master/Input_Files/* do fname=`basename $name` p=`$fname|cut -d"_" -f6|sed 's/\(.*\)....../\1/'` if then cp... (6 Replies)
Discussion started by: djrulz123
6 Replies

6. Shell Programming and Scripting

Wildcard search in if loop

Practice folder contains many files and im interested in extracting file which starts with abc* ghi* xyz* . I need to do variety of operations for different files. if file starts with xyz* then i need to move to some destination otherwise some other destination. I am not able to make wildcard... (15 Replies)
Discussion started by: kumaar1986
15 Replies

7. Shell Programming and Scripting

For loop without checking file exists

In several scripts that process files matched by name pattern I needed to add a check for file existence. Just to illustrate let's say I need to process all N??? files: /tmp$ touch N100 N101 /tmp$ l ?10 -rw-rw-r-- 1 moss group 0 Apr 19 11:22 N100 -rw-rw-r-- 1 moss group ... (10 Replies)
Discussion started by: migurus
10 Replies

8. Shell Programming and Scripting

Verify if filename exists

Hi, I have a variable returned from Oracle SQL Function which holds file names. I would like to test if all the file names mentioned in the string exists in a directory. If all the files exists print "exists", even if one file does not exists print "Does not exists". e.g. ... (3 Replies)
Discussion started by: pointers1234
3 Replies

9. AIX

Issue with wildcard in filename (AIX 7.1.0.0)

Hi, This has been pestering me for quite a while, any help will be highly appreciated The current directory has a file with below name npidata_20050523-20171210.csv The below wildcard matched the above file ls -ltr npidata_????????-201712??.csv But when the part '201712' is put... (6 Replies)
Discussion started by: zulfi123786
6 Replies
test(1) 						      General Commands Manual							   test(1)

NAME
test, [ - Evaluates conditional expressions SYNOPSIS
test [expression] [[expression]] STANDARDS
Interfaces documented on this reference page conform to industry standards as follows: test: XCU5.0 [: XCU5.0 Refer to the standards(5) reference page for more information about industry standards and associated tags. OPTIONS
None OPERANDS
The expression to be evaluated as true or false. This expression is constructed from the operators and elements explained in the DESCRIP- TION section. DESCRIPTION
The test command evaluates an expression constructed of functions and operators. If the value of expression is true, test returns an exit value of zero(0); otherwise, it returns FALSE, a nonzero exit value. The test command also returns a nonzero exit value if there are no arguments. The alternate form of the command surrounds expression with brackets ([ ]). When you use this form, you must surround the brackets with spaces. The test Expressions All of the listed functions and operators are separate arguments to test. The following functions are used to construct expression: TRUE if file exists and has read permission. TRUE if file exists and has write permission. TRUE if file exists and has execute permission. TRUE if file exists and is a regular file. TRUE if file exists and is a directory. TRUE if file exists. TRUE if file exists and is a character-special file. TRUE if file exists and is a block-special file. TRUE if file exists and is a named pipe (FIFO). [Tru64 UNIX] TRUE if file exists and is a soft link. Synonym for -L expression. TRUE if file exists and is a soft link. Synonym for -h expression. TRUE if file exists and its set-user ID bit is set. TRUE if file exists and its set-group ID bit is set. [Tru64 UNIX] TRUE if file exists and its sticky bit is set. TRUE if file exists and has a size greater than zero(0). TRUE if the open file with file descriptor number file_descriptor (1 by default) is associated with a terminal device. TRUE if the length of string1 is zero(0). TRUE if the length of string1 is nonzero. TRUE if string1 and string2 are identical. TRUE if string1 and string2 are not identical. TRUE if string1 is not the null string. TRUE if the integers number1 and number2 are algebraically equal. Any of the comparisons -ne, -gt, -ge, -lt, and -le can be used in place of -eq. The listed functions can be combined with the following operators: Unary negation operator. Binary AND operator. Binary OR operator (the -a operator has higher precedence than the -o operator). [Tru64 UNIX] Parentheses for grouping. EXIT STATUS
The following exit values are returned: The test command evaluated expression and its value is TRUE. The test command evaluated expression and is value is FALSE, or there are no arguments. An error occurred. EXAMPLES
To test whether a file exists and is not empty, enter: if test ! -s "$1" then echo $1 does not exist or is empty. fi If the file specified by the first positional parameter to the shell procedure does not exist, this displays an error message. If $1 exists, it displays nothing. There must be a space between -s expression and the file name. The double quotes around $1 ensure that the test will work properly even if the value of $1 is the empty string. If the double quotes are omitted and $1 is the empty string, test displays the error message test: parameter expected. To do a complex compari- son, enter: if [ $# -lt 2 -o ! -s "$1" ] then exit fi If the shell procedure was given fewer than two positional parameters or the file specified by $1 does not exist, then this exits the shell procedure. The special shell variable $# represents the number of positional parameters entered on the command line that started this shell procedure. ENVIRONMENT VARIABLES
The following environment variables affect the execution of test: Provides a default value for the internationalization variables that are unset or null. If LANG is unset or null, the corresponding value from the default locale is used. If any of the internationalization vari- ables contain an invalid setting, the utility behaves as if none of the variables had been defined. If set to a non-empty string value, overrides the values of all the other internationalization variables. Determines the locale for the interpretation of sequences of bytes of text data as characters (for example, single-byte as opposed to multibyte characters in arguments). Determines the locale for the for- mat and contents of diagnostic messages written to standard error. Determines the location of message catalogues for the processing of LC_MESSAGES. SEE ALSO
Commands: csh(1), find(1), ksh(1), Bourne shell sh(1b), POSIX shell sh(1p) Standards: standards(5) test(1)
All times are GMT -4. The time now is 07:46 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy