Shell脚本的三种执⾏⽅式
Shell脚本的执⾏⽅式可以有以下⼏种:
⽅式⼀:
./script.sh # 利⽤⼩数点来执⾏
⽅式⼆:
sh script.sh 或 bash script.sh # 利⽤bash(sh)来执⾏脚本
前⾯两种⽅式其实都是⼀样的:都是在当前⽗进程下的⼦进程中执⾏,⼦进程完成后,⼦进程中的各项变
量或操作将会结束⽽不会传回到⽗进程中.举例来说:
shell脚本返回执行结果可以看到,执⾏后再看脚本中两个变量,在⽗进程中不起作⽤!
备注: 如果在script2.sh⽂件⾥⾯执⾏script1.sh的脚本,那么就是执⾏. ./script1.sh [中间有空格]
⽅式三:
source script.sh 或 . liqiang.sh# 利⽤⼩数点来执⾏
⽽通过第三种⽅式执⾏(source test.sh)的话,在⽗进程中就起作⽤了:
这就是直接执⾏与⽤source命令执⾏的区别,前者只作⽤于⼦进程本⾝,后者则作⽤于整个⽗进程。
因此:如要想不注销系统,并让全局配置⽂件⽣效,则必须⽤source命令:
⽐如说: 在全局配置⽂件中/etc/profile添加了JAVA_HOME,要让他对整个环境⽣效
export JAVA_HOME=/usr/java/jdk1.7.0_75
就必须执⾏source /etc/profile
注意:在执⾏时要赋权限
chmod a+x liqiang.sh #赋权限chmod a+x script-name
补充知识点:
⼀个规范的Shell脚本在第⼀⾏会指出由哪个程序(解释器)来执⾏脚本中的内容,这⼀⾏内容在Linux bash的编程⼀般为:
#!/bin/bash
或
#!/bin/sh
注意:
(1)在Shell中如果⼀⾏的第⼀个字母是#,则是注释,但是上⾯两个是写在第⼀⾏,所以不是脚本注释⾏,如果写在某个命令之后,则变成注释⾏。
(2)sh为bash的软链接,⼤多数情况下,脚本的开头使⽤“#!/bin/bash”和“#!/bin/sh”是没有区别的,但
更规范的写法是在脚本的开头使
⽤“#!/bin/bash”。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论