cp command won't run if executed from shell script cp command won't run if executed from shell script shell shell

cp command won't run if executed from shell script


We seem to have doubt as to how this script fails. If there is no error message then this is a strange one. I suggest:

  1. On the command line (which works), do a which cp
  2. Whatever the reply, then copy that and use it as the cp in the script (e.g. /bin/cp)
  3. Check the widcard expansion, run your script with bash -x script-name and see if you get what you expect.
  4. echo $? after the copy in the script - if it is zero then it (thinks it) worked.
  5. Do a ls -ld /var/www/ksite/app from your script, maybe someone set a symbolic link?
  6. If it still fails, source the script from the command-line and see if that works . script-name
  7. Double check that the copy did actually fail! (maybe that should be step 1.)


Make sure you really have bash at /bin/bash. I think a batter hash bang is:

#!/usr/bin/env bash

This uses the env command to locate the bash binary and set the environment.


I had similar problem. What helped me:

  1. I used windows and putty to write script, so I had \r\n at the end of lines. Be sure, you have only \n symbol.

  2. I copied files and the only way it worked for me at script was cp <source_dir>/fileName <dest_dir>/fileName whereas at command line cp <source_dir>/fileName <dest_dir> worked well too.