I am learning the basics of bash and linux. To execute a script, I could type...
bash script1
or
source script1
or
./script1
The first two will run without chmod u+x
and the last one requires it.
From my understanding, bash tries to run things in a subshell so it doesn't mess things up. When I add bash
before the filename, it's executed in a subshell. source
is just a way of telling the computer to run it in the current shell. I'm not sure why these don't require the execute permission though.
./
is pretty straightforward. However, I've seen people run scripts without the ./
. One told me I could do this by doing something with PATH
. I completely don't understand this PATH
thing.
Can someone explain in the easiest way possible?