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.)
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
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.