shell的运行发放
1、切换到shell脚本所在的目录运行
#注意,一定要写成 ./test.sh,而不是 test.sh
#执行需要文件有执行权限(chmod +x hello.sh)
./hello.sh
一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。
2、绝对路径运行
/home/test/hello.sh
3、使用bash或sh运行,不需要权限
#1、切换到shell脚本目录
cd /home/test
#2、使用bash或sh
sh hello.sh
#或者
bash hello.sh
若是以方法三的方式来执行,那么,可以不必事先设定shell的执行权限,甚至都不用写shell文件中的第一行(指定bash路径)。因为方法三 是将hello.sh作为参数传给sh(bash)命令来执行的。这时不是hello.sh自己来执行,而是被人家调用执行,所以不要执行权限。
4、在当前shell环境中执行
source hello.sh
#或者
. hello.sh
前三种方法执行shell脚本时都是在当前shell(称为父shell)开启一个子shell环境,此shell脚本就在这个子shell环境中执行。shell脚本执行完后子shell环境随即关闭,然后又回到父shell中。而方法四则是在当前shell中执行的。