Some Problem with Korne Shell//

I am new to Korne Shell Scripting. Can someone help me with a Korne Shell which asks the user :-

1) to enter the name of a file when searching it recursively (using the find
command) in the home directory of this user.

2) for a date (format AAMMJJ) and a directory and then searches
recursively in this directory the list of files modified after the date
chosen.

Thanks,
Marconi.

Any pointers will do.

Thanks.

Read the man-page of find ("man find") and a good book about ksh programming - Barry Rosenbergs "Hands-On KornShell93 Programming" (1998, Addison-Wesley) is IMHO the best and at the same time really funny to read.

This should answer all your homework questions you have.

(On a side note, learning how to edit your own postings using the "edit"-button instead of posting them anew would also help, but that will be left for the "advanced"-assignment of the computer science curriculum.)

bakunin

Hi Everyone,

I have tried with the following Code for each of the following, but that does not seem to serve the purpose. Can someone give some pointers please.

1) A Korne Shell which asks the user to enter the name of a file when searching it
recursively (using the find command) in the home directory of this user.

\#!/usr/bin/ksh
find * -type f -type d -path usr
if [ �a file ]
then
     echo -n "Enter the file name"
fi

2) A Korne Shell which asks the user for a date (format AAMMJJ) and a directory and
then searches recursively in this directory the list of files modified after the date
chosen.

\#!/usr/bin/ksh
if ['-d $1'\+ 'date -t "%AA%MM%JJ"']
then
     echo -n "find all files modified after the chosen date"
touch ' new date -nt "%AA%MM%JJ"
find * -type f -type new date

Thanks,
Marconi.

*sigh*

I know, this is homework and i am aware that i am, by answering this thread, walking as thin a line as the OP. I hope to be able to push OP into the right direction without actually doing the assignment for the OP. (So much as a remark to the moderators here.)

#!/usr/bin/ksh
find * -type f -type d -path usr
if [ -a file ]
then
    echo -n "Enter the file name"
fi

The find-statement is wrong and you should indeed consult the manpage of find to out what exactly is wrong. There should even be some examples for correct find-statements there (manpages differ from system to system, on AIX there are examples, don't know about your system though). Try to analyze them.

in the line "if [ -a file ]" you refer to a STRING with the value "file" instead of a variable named "file". I suppose you intended the latter instead of the former. A variables value ins used in the Korn shell by a starting "$", like the following example:

file="/path/to/my/file"   # assign variable file a value

if [ -a $file ]    # test using the content of variable file

furthermore, read the man page of test (man test) to learn about possible test-conditions. "-a" is a binary AND and makes no sense whatsoever with a filename. An example for a "-a" which does make sense would be, if you have two test conditions and want to combine them, branching only when both are true:

if [ $a -gt 0 -a $b -le 5 ]

the first condition "$a -gt 0" is true when the content of variable a ("$a") is greater than ("-gt") zero, the second condition is true when the content of variable b ("$b") is lower or equal ("-le") to 5. The combined statement is "<condition1> -a <condition2>" and is true only if the first AND the second condition are both true.

I'll stop here and skip some other errors you made. I do hope that you understand i can't give you a complete Korn Shell lesson by just answering here in the forum. So again, my suggestion is you get yourself a copy of the book i mentioned in the first posting (or any other about the same subject according to your taste) and read it.

bakunin