Pass last filename from FTP ls to variable

How best to pass the last filename in a list from a FTP session to a variable in a shell script?

Here's what I have done -the solution works, however maybe could be improved.
Run main.sh which calls get-file-list.sh.      (.netrc is populated appropriately)

Contents of get-file-list.sh:
ftp whatever.com <<EOT
cd new-files
ls
quit
EOT

Contents of main.sh
./get-file-list.sh >current-list.txt
tail -1current-list.txt >current-last-file.txt
awk '{print $9}'current-last-file.txt


Thanks!

Roger

dsitechAsked:
Who is Participating?
 
jkrCommented:
If the file just contained the filenames line by line, you could do that like

export FILELIST=`cat current-list.txt`
export LASTENTRY
for FILEENTRY in $FILELIST; do
LASTFILE = FILEENTRY
done

After the loop, 'LASTENTRY' will hold the last file's name.
0
 
dsitechAuthor Commented:
Actually, I just have the result printing to the screen in the above example - still need to pass that to a variable. After that, I would use the variable to actually get the file.

Roger
0
 
dsitechAuthor Commented:
Thanks,

FILEENTRY & LAST ENTRY are built in variables?

0
Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

 
dsitechAuthor Commented:
export is new for me. I looked in "Unix in a Nutshell" and I see that that is how to get a variable to be available to other scripts called by the master script.

I don't quite see how LAST ENTRY gets the value that appears to go into LASTFILE. Could you let me know how that works?

0
 
dsitechAuthor Commented:
Thanks jkr.

I worked with it a bit and have functional code here:

#/bin/sh
./ftp-whatever-list.sh >whatever_list.txt
export file_list=`cat whatever_list.txt`
export last_file
for file_entry in $file_list; do
last_file=$file_entry
done
echo $last_file > last_file.txt
cat last_file.txt     # this is to prove that I can write a log file

I appreciate the example and opportunity to learn a new concept.

Roger
0
 
dsitechAuthor Commented:
Even better (skip the file listing file):

#/bin/sh
export file_list=`./ftp-whatever-list.sh`
export last_file
for file_entry in $file_list; do
last_file=$file_entry
done
echo $last_file > last_file.txt
cat last_file.txt


Thanks again,

Roger
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.