I've written a sh script in one of my ubuntu VMs which works fine, but when I try to run it in my other VMs, it does not work. Both VMs should be the same. With bash --version
both VMs reply with:
GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
With lsb_release -a
, both also reply:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.3 LTS
Release: 14.04
Codename: trusty
My security_steps.sh
script looks like this:
#!/bin/sh
set -e
if ! [ -f svn_up_action.sh ]; then
echo "svn_up_action.sh is missing. Please make sure it is in the same directory as this script."
exit
fi
When I do: sudo sh security_steps.sh
, the console errors with:
: not foundeps.sh: 6: security_steps.sh:
security_steps.sh: 7: set: Illegal option -
How can I figure out what's going on with the VM of the non-working shell? I feel like the shells are somehow different. I appreciate your help!
/bin/sh
is POSIX sh, not bash. – Anguishbash --version
is completely irrelevant to a script that uses#!/bin/sh
rather than#!/bin/bash
. – Anguish^M
at the end of each line – Danylukdos2unix
, the vim:set fileformat=unix
, or a similar command resolve your problem successfully? – Anguishdos2unix
solved my issue. Thank you. – Danyluk