做实验要写shell脚本,本以为照着PDF指导书敲就完事了,结果敲出来的代码永远运行不了,上网查了才知道shell脚本有那么多规则
一.shell脚本文件一律以 .sh结尾,执行shell脚本test.sh有3个方法:
1 sh test.sh 或bash test.sh(因为bash完全兼容sh)
当脚本文件没有可执行权限,或脚本文件开头没有指定解释器时需要使用的方法。推荐使用这种方法。
2 ./test.s或 绝对路径/test.sh,test.sh必须有可执行权限
新建的脚本默认是没有x权限的,用chmod +x test.sh 即可加上x权限
3 source test.sh或 . test.sh(.空格test.sh),文件有无x权限都可用
source或“.”命令的功能是:将脚本中的内容直接加载到当前的shell并执行,即在当前shell中加载并执行脚本的命令及语句。
注意:
而前两种方法执行shell脚本时都是在当前shell(称为父shell)开启一个子shell环境,此shell脚本就在这个子shell环境中执行,脚本中变量的改变与父shell无关,不会带回父shell环境中,,脚本执行完后子shell环境随即关闭。
而source或“.”命令直接在当前的父shell环境中执行,一些变量的信息会保存在当前shell中。
举例说明:
- 新建一个test.sh脚本,内容为:A=1
- 然后使其可执行