I saw a question recently where a user wanted to ensure that his script is only executed by using source.
My question is: what's the difference between ./test_script.sh and source test_script.sh? I do know that when source is used the script file doesn't need +x permissions. Are there any other differences? And my second question is: in what kinds of situations is each method appropriate?