bash运⾏脚本的⼏种⽅式
/data/shell/hello.sh
⽅法三:直接使⽤bash 或sh 来执⾏bash shell脚本:
cd /data/shell
bash hello.sh
cd /data/shell
sh hello.sh
注意,若是以⽅法三的⽅式来执⾏,那么,可以不必事先设定shell的执⾏权限,甚⾄都不⽤写shell⽂件中的第⼀⾏(指定bash路径)。因为⽅法三是将hello.sh作为参数传给sh(bash)命令来执⾏的。这时不是hello.sh⾃⼰来执⾏,⽽是被⼈家调⽤执⾏⽅法四:在当前的shell环境中执⾏bash shell脚本:
cd /data/shell
. hello.sh
cd /data/shell
source hello.sh
前三种⽅法执⾏shell脚本时都是在当前shell(称为⽗shell)开启⼀个⼦shell环境,此shell脚本就在这个⼦shell环境中执⾏。shell脚本执⾏完后⼦shell环境随即关闭,然后⼜回
到⽗shell中。⽽⽅法四则是在当前shell中执⾏的。
假设shell脚本⽂件为hello.sh
放在/root⽬录下。
下⾯介绍⼏种在终端执⾏shell脚本的⽅法:
代码如下:
[root@localhost home]# cd /root/
[root@localhost ~]#vim hello.sh
#!  /bin/bash
cd /tmp
echo "hello guys!"
echo "welcome to my !"
1.切换到shell脚本所在的⽬录,执⾏:
代码如下:linuxshell脚本怎么运行
[root@localhost ~]# ./hello.sh
-bash: ./ hello.sh: 权限不够
2.以绝对路径的⽅式执⾏:
代码如下:
[root@localhost ~]# /root/Desktop/hello.sh
-bash: /root/Desktop/ hello.sh: 权限不够
3.直接⽤bash或sh执⾏:
代码如下:
[root@localhost ~]# bash hello.sh
hello guys!
welcome to my !
[root@localhost ~]# pwd
/root
[root@localhost ~]# sh hello.sh
hello guys!
welcome to my !
[root@localhost ~]# pwd
/root
注意:⽤以上三种⽅法执⾏shell脚本,现⾏的shell会开启⼀个⼦shell环境,去执⾏shell脚本,前两种必须要有执⾏权限才能够执⾏。也可以让shell脚本在现⾏的shell中执⾏:
4.现⾏的shell中执⾏
代码如下:
[root@localhost ~]# . hello.sh
hello guys!
welcome to my !
[root@localhost tmp]# pwd
/tmp
[root@localhost ~]# source hello.sh
hello guys!
welcome to my !
[root@localhost tmp]# pwd
/tmp
对于第4种不会创建⼦进程,⽽是在⽗进程中直接执⾏。
上⾯的差异是因为⼦进程不能改变⽗进程的执⾏环境,所以CD(内建命令,只有内建命令才可以改变shell 的执
作者:LinM1993
链接:www.jianshu/p/ba6efda13e23
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。