linux运行shell脚本有几种方式,可以根据不通场景下使用。
- ./filename.sh
- sh filename.sh
- . filename.sh
赋予执行权限
在linux下如果想要运行一个程序或者脚本,需要给对应的文件赋予可执行权限,如
chmod 755 filename.sh
chmod +x filename.sh
这样就可以直接使用./filename.sh 来执行shell脚本文件了
调用解释器直接运行
当然也可以使用,如下命令直接运行shell脚本,不需要关心脚本是否有执行权限
sh filename.sh
linux系统的不同,sh指向的shell解释器就不通,我的shell解释器是bash
[root@api ~]# ls -l /usr/bin/sh
lrwxrwxrwx. 1 root root 4 Jul 11 2019 /usr/bin/sh -> bash
使用dot 【.】 来调用
source 命令和 [ . ]的效果是一样的,对于dot 【 . 】,调用的shell脚本,会把shell脚本里的变量引用到当前的shell终端里。比如:
[root@api ~]# echo ‘a=1’ > file.sh
[root@api ~]# echo $a
[root@api ~]# . file.sh
[root@api ~]# echo $a
1
从以上可以看出,当前的shell环境把file.sh 脚本里的变量a引用到了当前环境。
以上,希望对于有所帮助。
新手必知的问题,这里简单说下4种方式:
1.脚本所在目录执行
比如我现在有一个脚本叫test.sh,首先确保有执行权限,如果没有,需要赋予执行权限。
需要注意的是:如果shell脚本第一行申明了其他语言(比如python),但是正文是shell编程语言语法,那么将会报错。
补充一个知识点:
一个规范的Shell脚本在第一行会指出由哪个程序(解释器)来执行脚本中的内容,这一行内容在Linux bash的编程一般为:
#!/bin/bash
或者是
#!/bin/sh
2.脚本以绝对路径执行
比如你现在在/tmp目录下,你要执行家目录(/opt/testerzhang)下的test2.sh,那么我们就以绝对路径执行。
3.sh命令执行
我们可以用sh命令来执行具体的shell脚本,这种情况下,不需要赋予文件执行权限。
当然我们也可以将sh命令改成bash命令执行,也是可以的。
4.source命令或者点符号命令执行
看了上面4种方式,相信你已经了解了如何去运行一个shell脚本。
本文来自投稿,不代表天一生活立场,如若转载,请注明出处:http://tiyigo.com/baike/172.html