Lost files ......

Posted on 2000-05-08
Last Modified: 2012-08-14
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????????
Question by:rigsby
  • 3
  • 2
  • 2
  • +5

Expert Comment

ID: 2788820
is the route to Expect included in your PATH variable ? (i.e /usr/local/bin/expect or whherever it is)

Expert Comment

ID: 2788821
is the route to Expect included in your PATH variable ? (i.e /usr/local/bin/expect or wherever it is)
LVL 14

Accepted Solution

chris_calabrese earned 200 total points
ID: 2788858
alexhudghton's comment implies that you are calling this thing like
  expect /my/script

But your description sounds more like you are just calling
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


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
Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

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.


Author Comment

ID: 2789229
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
and Expect is expect- - a freeware archive.

Hope you can help.
LVL 20

Expert Comment

ID: 2789411
Is "goto" the name of the script? What happens if (in that directory) you do "touch; chmod 755;"?
LVL 14

Expert Comment

ID: 2789477
Is expect actually in /usr/bin, or is it somewhere else?

Expert Comment

ID: 2789965
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
LVL 40

Expert Comment

ID: 2795928
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.

Expert Comment

ID: 2802713
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
LVL 12

Expert Comment

ID: 2815707
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

$ ./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.

Author Comment

ID: 2868398
Comment accepted as answer

Author Comment

ID: 2868399
Many thanks Chris ...... sorry took so long!!!!!

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

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

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A metadevice consists of one or more devices (slices). It can be expanded by adding slices. Then, it can be grown to fill a larger space while the file system is in use. However, not all UNIX file systems (UFS) can be expanded this way. The conca…
Java performance on Solaris - Managing CPUs There are various resource controls in operating system which directly/indirectly influence the performance of application. one of the most important resource controls is "CPU".   In a multithreaded…
Learn several ways to interact with files and get file information from the bash shell. ls lists the contents of a directory: Using the -a flag displays hidden files: Using the -l flag formats the output in a long list: The file command gives us mor…
In a previous video, we went over how to export a DynamoDB table into Amazon S3.  In this video, we show how to load the export from S3 into a DynamoDB table.

827 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question