关于运行shell程序的问题

关于运行shell程序的问题

我写了一个shell程序,名叫“test.sh”,我运行的时候输入“./test.sh”提示没有权限,但是如果输入“. test.sh”就能够正常运行,这是为什么?这两种运行方式有什么不同?
谢谢
./test.sh 必须是可执行的才可以。
. test.sh 相当于
source test.sh 不需要该文件具有可执行权限。
他们两个有什么本质区别吗?
父shell,子shell
./ 是父shell
.  是子shell
对吗?
那为什么在父shell中要具有可执行权限才行?
与父子shell无关!

解释一下 . 和./区别

source filename [arguments]

              Read and execute commands from filename in the current shell environment and return
              the exit status of the last command  executed from filename.  If filename  does  not
              contain a slash, file names in PATH are used to find the directory containing file-
              name.  The file searched for in PATH need not be executed .  When bash is  not  in
              posix  mode, the current directory is searched if no file is found in PATH.  If the
              sourcepath option to the shopt builtin command is  turned  off,  the  PATH  is  not
              searched.   If  any  arguments  are supplied, they become the positional parameters
              when filename is executed.  Otherwise the positional parameters are unchanged.  The
              return  status  is the status of the last command exited within the script (0 if no
              commands are executed), and false if filename is not found or cannot be read.
你们的解释到底谁对呀?有人说是父shell和子shell,有人说是source?
. 就是source
再看上面的解释。。 上面说的很详细!
不明白?》?!?!?!
" file names in PATH are used to find the directory containing file-
name."这句是什么意思?
PATH是环境变量吧,那么在PATH中的文件名怎么样?
Sorry, . means "source".
BOoRFGOnZ was right!