I have a script that uses sh
shell. I get an error in the line that uses the source
command. It seems source
is not included in my
source is a bash built-in command so to execute source command, you can log in as Root.
sudo -s
source ./filename.sh
/bin/sh
is usually some other shell trying to mimic The Shell. Many distributions use /bin/bash
for sh
, it supports source
. On Ubuntu, though, /bin/dash
is used which does not support source
. Most shells use .
instead of source
. If you cannot edit the script, try to change the shell which runs it.
The source
command is built into some shells. If you have a script, it should specify what shell to use on the first line, such as:
#!/bin/bash
I faced this error while i was trying to call source command from #Jenkins execute shell.
source profile.txt
or
source profile.properties
Replacement for source command is to use,
. ./profile.txt
or
. ./profile.properties
Note: There is a space between the two dots(.)
The source
builtin is a bashism. Write this simply as .
instead.
e.g.
. $FILE
# OR you may need to use a relative path (such as in an `npm` script):
. ./$FILE
https://wiki.ubuntu.com/DashAsBinSh#source
Bourne shell (sh) uses PATH to locate in source <file>
. If the file you are trying to source is not in your path, you get the error 'file not found'.
Try:
source ./<filename>