I'm trying to run a bash script
on my Ubuntu machine and it is giving me an error:
function not found
To test, I created the following script which works fine on my laptop but not on my Desktop. Any ideas as to why? My laptop is a mac if that's relevant.
#!/bin/bash
function sayIt {
echo "hello world"
}
sayIt
This returns "hello world" on my laptop, but on my Desktop it returns:
run.sh: 3: function not found hello world run.sh: 5: Syntax error:
"}" unexpected
Best Answer
Chances are that on your desktop you are not actually running under
bash
but ratherdash
or some other POSIX-compliant shell that does not recognize thefunction
keyword. Thefunction
keyword is a bashism, a bash extension. POSIX syntax does not usefunction
and mandates the use of parenthesis.The POSIX-syntax works in both: