Scripting question

Preview of command prompt
f ---> to start ferret
q----> to stop ferret

asp@nex:~$ f
     NOAA/PMEL TMAP
     FERRET v6.82  
     Linux 2.6.18-308.8.2.el5PAE 32-bit - 08/03/12
      3-Dec-12 16:44    
 
yes? go my.jnl

yes?column=4/skip=1/type=num,text ............filename.txt

---
---some code...to do some task
---
yes?save/file=filename.nc ........................................
yes? q

after the execution of quite process script has to do one more thing that is to change the base of filename both (filename.txt and filename.nc) at the beginning and end with the next file's base in a directory till the end of all the files in a directory

again script has to enter f in command prompt.....
and has to run go my.jnl
;
;
again change file base name in my.jnl file

I replaced base of file manually one after another by putting my.jnl file in separate directory by this script

#!/bin/bash
# Replaces string in a jnl file 
#it kills my time in replacing string..
OLD="data1"
NEW="data2"
TFILE="/tmp/out.tmp.$$"
for file in *.jnl; do
  if [ -f $file -a -r $file ]; then
      sed "s/$OLD/$NEW/g" "$file" > $TFILE && mv $TFILE "$file"
  else
   echo "Error: Cannot read $file"
  fi
done

As I am very poor in programming I could not able to do the task which I actually required for my task

I looking forward for positive reply...

Thanks in advance..

Did you consider a "here document" (c.f. man bash)? Run this script:

$ f <<EndOfCommands
go my.jnl
column=4/skip=1/type=num,text ............filename.txt
---
--- some code...to do some task
---
save/file=filename.nc
q
EndOfCommands

If the delimiter (EndOfCommands in this case) is unquoted, the lines are expanded etc., so you can use shell variables.

asp@nex:~$ f
                  NOAA/PMEL TMAP
                  FERRET v6.82        
                  Linux 2.6.18-308.8.2.el5PAE 32-bit - 08/03/12       3-Dec-12 16:44

 yes? go my.jnl
! this is my.jnl columns/skip=1/delim="\t,\b"/type="numeric,text,numeric,latitude" filename.txt
let time = v1 
let cast = v2 
let level = v3 
let depth =v4 
list/file = filename.nc/format=cdf/clobber v1,v2,v3,v4
listing filename.nc
yes ? q
asp@nex:~$ here again f should be typed

No I didn't consider, when I run above script I got some error its because of ferret

my.jnl is a file which is containing filename.txt as well as filename.nc

base of both .txt and .nc are same...that is filename

example data.txt data.nc

after each execution of go my.jnl it needs to be quite otherwise I will get memory error, as my text file size is about 10 MB,

once again it should write. after quite...f in command prompt..
and then go my.jnl

here i will paste my jnl...then u will have come to know...

! this is my.jnl
columns/skip=1/delim="\t,\b"/type="numeric,text,numeric,latitude" filename.txt
let time = v1
let cast = v2
let level = v3
let depth =v4
list/file = filename.nc/format=cdf/clobber v1,v2,v3,v4

Note : first filename.txt comes after " , and second filename.nc comes after =

Sorry - I don't have a clue what ferret is or what it does beyond its zoological equivalent. Either you tell us more specifically what you need, so we can help, or you take the hints and proposals given and try yourself to understand/expand/improve.
I GUESS go my.jnl itself is a call to a script in ferret. So try reducing the here document to the call and to the q uit command.

I just want want shell script to do following task

if possible try to write script from following ideas

  1. read all the files name in a directory and write filename in new text file

2.Assume the directory will be having one more text file(my.jnl
) will have some filename inside with extension .txt and .nc, so search the filename and start some counter

  1. once execution of quite command, again command prompt comes with user@hostname, then write the next file base name into first searched location, and so on till the end of new text file

I hope you will understand...