• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 351
  • Last Modified:

Lost files ......

I have ftp'd an ASCII based Expect script onto an AIX box.  I have altered the file attributes to executable and then attempted to run the script.  I get the message ..... " ksh: goto:  not found. ".
I am in the correct directory which is itself included in the PATH variable.  Expect has been installed and seems to function correctly.  I have deleted the file and re-copied several times without success.  The system does not appear to acknowledge that the file exists.

Does anyone have any ideas as to the cause plus the solution of this little difficulty????????
0
rigsby
Asked:
rigsby
  • 3
  • 2
  • 2
  • +5
1 Solution
 
alexhudghtonCommented:
is the route to Expect included in your PATH variable ? (i.e /usr/local/bin/expect or whherever it is)
0
 
alexhudghtonCommented:
is the route to Expect included in your PATH variable ? (i.e /usr/local/bin/expect or wherever it is)
0
 
chris_calabreseCommented:
alexhudghton's comment implies that you are calling this thing like
  expect /my/script

But your description sounds more like you are just calling
  /my/script
after making it executable.

If this is so, it sounds like you're missing the #! directive at the top of the script to tell the system that this is not a shell script but rather an expect script.  That would usually look something like

  #!/usr/local/bin/expect

Another possibility I thought of is that you're actually calling
  ksh /my/script

which isn't going to work because ksh will always assume this is a shell script.

Finally, it occurs to me that you may also be trying to call the script out of cron, in which case you might need to explicitly call expect like
  expect /my/script
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
rigsbyAuthor Commented:
Thanks for the help guys!!!!

I am actually calling the script name just as it is (name only).  The script is a fully working script much used previously but is just being copied to another box,  It already has the " #!/usr/bin/expect -- " first line.

It just appears that the shell (ksh) does not seem to think it exists i.e in the director within the filesystem etc.

The OS is AIX 4.2.1.0
and Expect is expect-5.31.5.0.bff - a freeware archive.

Hope you can help.
0
 
tfewsterCommented:
Is "goto" the name of the script? What happens if (in that directory) you do "touch test.sh; chmod 755 test.sh; test.sh"?
0
 
chris_calabreseCommented:
Is expect actually in /usr/bin, or is it somewhere else?
0
 
meerakCommented:
Either you do not have " expect"  at /usr/bin or /usr/bin/expect does
not have execute permission.

Basically the script you are executing is assumed to be a ksh
script instead of an "expect" script. There is no "goto" in ksh.

If you have #!/usr/bin/expect as you first line it means that
"expect" is the name of the shell to be used for executing the
script.
0
 
jlevieCommented:
What happens if you invoke expect with the script as its input (expect myscript)? Has the script passed through a windows box at some point in the FTP transfers between machines? If it did there could be carriage returns at the end of each line that will need to be removed before the script is usable on Unix.
0
 
bhagawatulaCommented:
Try this:
1) can you cat the file?
2) if yes, do " cat file > newfile"
This may sound stupid, but I faced similar poblem on solaris, when I transfered a file over ftp from a linux box. This also happend when I used Copy and Past in vi.
try to execute the newfile...


Best of luck
Hemanth
0
 
geotigerCommented:
Can you post the expect script? Did you find "goto" in the script? I think some where the code in the script was broken. Some where the script try to run ksh. Look the following test I did:  


$ more ./tt
#!/bin/ksh
goto

$ ./tt
../tt[2]: goto:  not found
$ ksh goto
ksh: goto:  not found

The tt ksh script only contains "goto". When I run it, it display the script name. When you run "ksh goto", you get the error of "ksh: goto:  not found."

Hope this helps.
0
 
rigsbyAuthor Commented:
Comment accepted as answer
0
 
rigsbyAuthor Commented:
Many thanks Chris ...... sorry took so long!!!!!
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 3
  • 2
  • 2
  • +5
Tackle projects and never again get stuck behind a technical roadblock.
Join Now