Shell脚本的执行
1.创建模拟脚本test.sh
cat > test.sh #<==编辑test.sh脚本文件
echo ‘I am LYJ’ #按回车键后再按Ctrl+d组合键结束编辑
2.显示文件内容
cat test.sh
3用第一种方式命令执行
sh test.sh #sh命令
bash test.sh #bash命令
4用第二种方法命令执行
ls -l tesh.sh #
./test.sh #当无法自动补全表示没有权限
(执行结果)-bash:./test.sh:Permission denied
没有权限的脚本不能直接被执行,但是可以用source或“.”(点号)来执行
. test.sh #用“.”来执行
source test.sh #用source来执行
“.”和source的功能相同,都是读入脚本并执行脚本。
给test.sh添加可执行权限,命令如下
chmod u+x test.sh
加了权限就可以执行了,但是这种方法在使用前每次都需要给定执行权限,容易忘记且增加了复杂性。
5.source或“.”执行的脚本中的变量值会传递到当前的Shell中.
echo 'userdir=`pwd`' > testsource.sh #将'userdir=`pwd`'写入文件
cat testsource.sh #显示文件的内容
sh testsource.sh #用sh命令执行脚本
echo $userdir #此条命令输出为空
通过sh或bash执行的脚本结束后,在当前Shell窗口查看userdir变量的值,会发现值是空的。
现在以同样的步骤改用source或“.”执行,然后在看userdir变量的值:
source testsource.sh #采用source执行同一脚本
echo $userdir #此处输出了当前路径
参考NFS服务的脚本是如何使用“.”的:
#Source funnction library
./etc/init.d/fanctions #<==通过“.”加载系统函数库fanctions