hi
hope u guys are well... i am using a linux command (with system() call in my c++ code) to search all files with in the system and then store the results in the a file(say filename). i am piping this with tail --f filename to display the results while storing then in file 'filename'...

now as tail --f breaks when user breaks it( by ctrl +c) i was wondering is there anyother way to break this pipe
the command i am using is

find / -wholename= 'somename'>>filename | tail --f filename

my program doesn't continue until users breaks this command...
i was wondering whether there is a way to break this command when find is unable to find anynew file and append it to filename after some time interval....


my english is not very good if what i have written above is unclear please let me know....

i need to display the files found which are stored in filename at the same time on the terminal....

if i can not break from tail --f with out user break... is there anyother way e.g. let say that the file filename is checked after every 1 second to see if anything is written to it ...if anything is written to filename it is displayed ...if nothing gets written to file name say uptill 10 seconds the process breaks automatically...

i am sorry if this is the wrong question for this forum ..if that is the case can you please direct me to which forum i should put this question on thanks...i have searched on the net and books for a solution but i can not find any ..the closest thing i can think of it is to use the pid of find / -wholename='somename'>>filename to break the pipe but as i am a newbie i can not do that ..
thanks

Recommended Answers

All 4 Replies

then do

find / -wholename='somename' -print | tee -a filename

Edit:

Although I am not familiar with "wholename" argument, I assume your find options are actually something different (and correct).

thanks for the reply... i checked
find / -wholename='somename' -print | tee -a filename
but i am getting an error which is "unexpected EOF encountered ". does the file filename has to contain something before i execute this command ??.... i thought this was happening because the file was empty and the only character the file had was the end of file character... but i entered sometext manually but i am still getting this error....
any suggestion??..

I would have to assume that it is coming from the tee (and that error will only occur on the file handle being read, not the filehandle being written), so I have to assume that the find command is not finding anything. But that also seems strange, as I believe that should have the same effect as doing

echo "" | tee -a filename

which as far as I know should not produce an error. Are you certain the error is happening here.

That error also occurs when a quoted string is not ended properly in the script so the shell continues reading the script as a part of the quoted string, but reaches the end of the file before reaching the end of the string as follows:

#!/bin/sh
var="this is an unfinished string
cat filename  # never gets executed as the shell still considers this a part of the string above
# here the script ends and produces the error given above as the string is not ended

hey sorry masjade for the late reply it did solve my problem thank you so much

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.