Sponsored Content
Full Discussion: Tip: file_exists function
Top Forums Shell Programming and Scripting Tip: file_exists function Post 302921842 by MadeInGermany on Monday 20th of October 2014 01:51:16 PM
Old 10-20-2014
Tip: file_exists function

Often a wildcard test on files is needed.
Because test -f ... or [ -f ... ] have problems with zero or many arguments, and even [[ -f ... ]] has problems, and I have seen some ugly work-arounds,
I suggest the following simple function, to be defined somewhere at the beginning of the script:
Code:
file_exists() {
  for _i do [ -f "$_i" ] && return
  done
  return 1
}

It returns status 0 (success) if at least one of the given files was found,
and status 1 otherwise (the return 1 is necessary in case the nullglob option is on).
Examples:
Code:
if file_exists /tmp/*
then
  echo "at least one file is in /tmp"
fi

Code:
if file_exists /usr/lib/libtcl.so* /usr/lib/libtcl[0-9]*.so*
then
  echo "a libtcl is in /usr/lib"
fi

Analogue to file_exists() one can have the functions
Code:
dir_exists() {
  for _i do [ -d "$_i" ] && return
  done
  return 1
}

and
Code:
file_executable () {
  for _i do [ -f "$_i" -a -x "$_i" ] && return
  done
  return 1
}

These 3 Users Gave Thanks to MadeInGermany For This Post:
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

one teaching Tip

Student have huge interest about why so many expert choose use UNIX than MS Windows. I consider that SHARE & OPEN is key point.:) (2 Replies)
Discussion started by: 111000
2 Replies

2. Solaris

tip into 280R

I need to use tip from machine A serial port to machine B serial port. Can someone point me to an example of the correct cable to use? Thanks. (1 Reply)
Discussion started by: dangral
1 Replies

3. Shell Programming and Scripting

Little bit of a help or just a tip

I am about to do a script that change the COST so i dont need to change each cost. The output looks like this. "OL_ID OL_LINK_COST ----------- ------------ 51 10 52 10 53 10 54 10 55 ... (3 Replies)
Discussion started by: maskot
3 Replies

4. UNIX for Advanced & Expert Users

if test -f $file_exists

Hi, I have a wiered problem probably unique to me. if test -f "${LOGDIRE}/Component_Name.sql" then echo "<br>Synchronization success<br>" else echo "<br>Sorry! Synchronizing failed" fi Considering, the file is present always, the above condition returns different outputs in each... (1 Reply)
Discussion started by: Nanu_Manju
1 Replies

5. Solaris

Solaris; tip

plz explain TIP in solaris in detail. (11 Replies)
Discussion started by: karman0931
11 Replies

6. Shell Programming and Scripting

Regexp tip

Hello, I'm just starting working on it. I'd like to get a tip For istance if I have a file like: a b c d e f .... and I wanna get: 1a & 2b & 3c 0d & 8e & 4f ..... I would like to use sed and come up with a regular expression that works.... (3 Replies)
Discussion started by: Dedalus
3 Replies

7. Shell Programming and Scripting

Search tip.

How do I find a key word in multiple files.. in a directory.. ? cat *.doc | grep -i myword? (7 Replies)
Discussion started by: hamon
7 Replies

8. Shell Programming and Scripting

Quick awk tip :)

how do i "awk" the date after the from only to compare it on a if statement later . filename example: server1-ips-ultranoob-ok_From_2012_21_12-23:40:23_To_2012_21_12-23:49:45.zip what i want o do is compare only the date from the string in "From_2012_21_12" in this case i only want the... (4 Replies)
Discussion started by: drd0spt
4 Replies

9. AIX

[TIP] Migration to POWER8

Read "Migration to POWER8" article to get prepared for migration to POWER8: link removed, advertisement (0 Replies)
Discussion started by: pave01
0 Replies

10. Shell Programming and Scripting

[Tip] A better echo

Often it has been said that echo is neither portable nor correct. Here is an input.txt: line1 line2 -n line4 -en line6 -x line8 Then the following fails with BSD/Linux/bash: while IFS= read line do echo "$line" done < input.txt It is elegantly improved by means of an echo... (2 Replies)
Discussion started by: MadeInGermany
2 Replies
All times are GMT -4. The time now is 12:25 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy