快捷搜索:  汽车  科技

linuxshell文件怎么执行(linux中执行shell脚本的三种方式)

linuxshell文件怎么执行(linux中执行shell脚本的三种方式)知道这点对以后编写脚本及排错有很大的作用,下面有案例。1 and 2是产生一个子Shell来执行脚本文件以上的路径可以是绝对/相对路径。注意!!!:source/.是在当前Shell中执行脚本文件

linux中执行shell脚本的三种方法

1、 脚本文件路径[需要脚本有执行[x]权限]

2、 bash 脚本文件路径[当脚本没有执行权限or或者脚本文件未指定解释器,推荐使用]

3、 source/. 脚本文件路径

以上的路径可以是绝对/相对路径。

注意!!!:

source/.是在当前Shell中执行脚本文件

1 and 2是产生一个子Shell来执行脚本文件

知道这点对以后编写脚本及排错有很大的作用,下面有案例。

测试[x]权限:

创建一个demoShell文件

linuxshell文件怎么执行(linux中执行shell脚本的三种方式)(1)

简单打印点东西

linuxshell文件怎么执行(linux中执行shell脚本的三种方式)(2)

查看demoShell文件权限

文件目前是没有x权限

linuxshell文件怎么执行(linux中执行shell脚本的三种方式)(3)

方式2执行

注意:

不限于bash,可以是系统内支持的所有shell

查看系统支持的shell

linuxshell文件怎么执行(linux中执行shell脚本的三种方式)(4)

测试

如下图可以执行

绝对/相对路径皆可

linuxshell文件怎么执行(linux中执行shell脚本的三种方式)(5)

方式3执行

绝对/相对路径皆可

source demoShell

. demoShell

可以执行

linuxshell文件怎么执行(linux中执行shell脚本的三种方式)(6)

方式1执行

绝对/相对皆可

./demoShell

/root/General/myShell/demoShell

Permission denied:是因为方式1需要x权限

linuxshell文件怎么执行(linux中执行shell脚本的三种方式)(7)

修改文件权限

给u[user]赋予执行的权限

chmod u x demoShell

linuxshell文件怎么执行(linux中执行shell脚本的三种方式)(8)

测试

如下图可以执行

linuxshell文件怎么执行(linux中执行shell脚本的三种方式)(9)

测试方式3和方式1、2的不同之处:

下面咱们稍微规范一下

vim demoShell

以下操作就是打印name变量

linuxshell文件怎么执行(linux中执行shell脚本的三种方式)(10)

在当前shell给name变量赋值

name='odysee'

注意:=两边不要有空格

linuxshell文件怎么执行(linux中执行shell脚本的三种方式)(11)

方式1、2、3执行

linuxshell文件怎么执行(linux中执行shell脚本的三种方式)(12)

是不是发现有些许不同了,方式1、2 name为空,方式3可以正常打印。

这就是上面谈到的,方式3[source/.]是在当前shell执行,而方式1、2是产生一个子进程shell,

子shell是无法获取当前[父]shell的值。

可以简单的把子shell和当前shell理解成内存中的A和B,A是无法获取B中的name。

大家以后在编写shell时一定要注意这点!

欢迎大家给予宝贵的意见或者建议

欢迎大家补充或者共享一些其他的方法

感谢支持

猜您喜欢: