for i in ls question


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting for i in ls question
# 1  
Old 04-30-2009
for i in ls question

Greetings,

I have a script that uses this syntax:

for i in `ls *.pll`
do
echo Compiling Lib $i .....
frmcmp.sh userid=$LOGON module_type=LIBRARY module=$i compile_all=yes batch=yes
done
mv *.pll ../libs
mv *.plx ../libs
mv *.err ../libs

If there are no files that match though I get a couple of errors like:
ls: *.pll: No such file or directory
mv: cannot stat `*.pll': No such file or directory

Although it is not a big deal I'd like to fix the script to be more informative so say 'skipping compile as no matching files found' or something.
So do I just add an else clause or something to fix this?

TIA.
# 2  
Old 04-30-2009
Create a list and test if it is empty:

list_file=`ls -1 *.pll 2>/dev/null`
if [ -z "$list_file" ]
then
echo "skipping compile as no matching files found"
exit 1
fi

for i in $list_file
do
....

Last edited by alepi; 05-04-2009 at 06:45 AM..
# 3  
Old 04-30-2009
Also, if you want to stick with your syntax, better to do it like this:

Code:
ls *.pll 2>/dev/null|while read fname; do
  ...something like test for 0 bytes first, etc.
done

# 4  
Old 04-30-2009
Quote:
Originally Posted by mjdbhouse
Greetings,

I have a script that uses this syntax:

for i in `ls *.pll`
do[/code]

TIA.
Code:
for i in *.pll

# 5  
Old 04-30-2009
thanks all

Thanks all.
Looks like I can take it from here.
# 6  
Old 04-30-2009
Spoke to soon and I guess I should have mentioned there is more to this file.
If I use exit1 example it works well until I add to that script to check for the next type of file so the exit1 looks like it exits the script versus continuing to process the script. Correct?
I mean I want to repeat that code to then check for .fmb file and compile and then .rdf files and run a different cmd against them.
I'll take a look at the 'while read fname' example if that might be a better method?
# 7  
Old 04-30-2009
Assuming your files are always 'filename.extension', you can always use a case statement to determine next course of action, for example:

Code:
ls *.pll *.dll *.plx *.err *.fmb *.rdf 2>/dev/null|\
while read file_nm ; do
 # Maybe check filesize here then continue
 ext=`echo ${file_nm}|cut -d'.' -f2`
 case $ext in
   pll) echo do something with this $ext
   ;;
   dll) echo do something with this $ext
   ;;
   plx) echo do something with this $ext
   ;;
   fmb) echo do something with this $ext
   ;;
   err) echo do something with this $ext
   ;;
   *) echo do something with this $ext
   ;;
 esac
done

Login or Register to Ask a Question

Previous Thread | Next Thread

7 More Discussions You Might Find Interesting

1. AIX

df question

Hi, Can anyone please explain a little about df command. I have following question: Following example is showing % used as 4 where as total free blocks are 15.46 out of 16.00 MB blocks. df -m /test Filesystem MBblocks Free %Used Iused %Iused ... (5 Replies)
Discussion started by: itsabhi9
5 Replies

2. Hardware

question

How to add 3 moniters to a pc set up? (2 Replies)
Discussion started by: clicstic
2 Replies

3. Shell Programming and Scripting

question about wc

Hey my friend was asking me if i knew a way to cout how many different words in a file. I told him no not off hand, but i was thinking about it, and i started to wonder also. I imagine this is probably pretty simple im just missing something, I keep confusing my self with how you would compair and... (16 Replies)
Discussion started by: yodadbl07
16 Replies

4. UNIX for Dummies Questions & Answers

Question

hallo, ik heb hier een vraagje. hoeveel gebruikers kunnen er op 1 unix systeem. hopelijk antwoorden golle nu want ik moet da vinde voor school en die leerkracht zaagt. :p groetjes eu wacht wa was mijne nick ah ja vraagje groetjes vraagje ik kan geen engels dus antwoord liever in het... (1 Reply)
Discussion started by: vraagje
1 Replies

5. UNIX for Dummies Questions & Answers

mv question

Hello if I like to move file from defined directories system to new directory that not contained any directories system structure . But I like to create the same file system structure as source directory for example : I have 2 directories: foo1 and foo2 foo1 have directories and foo2 have... (2 Replies)
Discussion started by: umen
2 Replies

6. Solaris

vi question

Im trying to edit a 113 meg file in VI and i get the error TMP FILE TOO LARGE. Does someone know how to get around this? Thanks! (1 Reply)
Discussion started by: BG_JrAdmin
1 Replies

7. Programming

Yet Another Question

Now that I have getch() to work, I have yet another problem. BTW, thank you for answering these questions, I do ask a lot, only because I am eager to know, what is a board used for anyways :) Ok, he's the problem... #include iostream.h #include conio.h int main() { char movement; ... (2 Replies)
Discussion started by: mbolthouse
2 Replies
Login or Register to Ask a Question