I must be missing a fundamental understanding about sourcing files in bash. I've tried the different approaches that seem like they should work, but I still get this error source: not found
.
In my script I tried to cd to the directory where the file that I want to source is located before sourcing it. That didn't work.
cd /home/user/path/to/
source myfile
Neither did providing the full absolute path to the file to be sourced:
source /home/user/path/to/myfile
The error is "source: not found" with the line number of the above statement.
Is there something else, something basic, I could be overlooking? I have checked the paths I'm using and I don't see any errors. This problem is repeatable.
I'm running Ubuntu on a Linode server and my scripts all start with:
#!/bin/bash
Best Answer
Your second attempt using the absolute path should be the correct method.
Possible causes of your bug:
alias
which is overriding the builtinsource
(fix withunalias source
)source
(fix withunset -f source
)bash
(although your bang line would suggest you are).source
is not POSIX. Usingsource
ondash
does not work, only.
works.source
withbash
in POSIX mode worked, though maybe this is due to my version or compilation flags. Maybe this is different for you and you are in POSIX mode.1 and 5 give errors like the one you posted.