Linux中运行shell脚本的几种方式及其区别(source . ./myscript.sh sh myscript.sh)

您所在的位置:网站首页 Linux执行脚本的三种方式 Linux中运行shell脚本的几种方式及其区别(source . ./myscript.sh sh myscript.sh)

Linux中运行shell脚本的几种方式及其区别(source . ./myscript.sh sh myscript.sh)

2023-08-11 01:44| 来源: 网络整理| 查看: 265

Linux中运行shell脚本的几种方式

我们假设要运行的脚本名称为myscript.sh。运行shell脚本一般有以下几种方式:

./mysccript.shsh mysccript.shsource myscript.sh. mysccript.sh ./myscript.sh 这种方式运行脚本需要myscript.sh在当前目录下,当然其他目录下的脚本也可以输入相应的路径来运行。./ 表示在当前目录寻找这个脚本来执行,不加 ./ 的话系统会去PATH变量中的路径去寻找这个脚本,一般情况下shell脚本又不会放到PATH路径中。这种方式需要myscript脚本具有执行权限。这种方式可以在脚本的首行指定解释器,如#!/bin/sh,也可以指定如python perl之类的其他解释器,不指定的话默认sh解释器。这种方式运行脚本会重新启动一个子进程来运行该脚本,因此局部变量不可与其父进程共享。 sh myscript 这样运行shell脚本实际上运行的是sh这个命令,并且把myscript当做参数传递给了sh,因此此时myscript.sh是不需要执行权限的。此时脚本首行不用指定解释器,指定了也没用。这种运行方式同样会重新启动一个子进程来执行脚本,因此局部变量不可与其父进程共享。

sh/bash/ksh等的区别请查阅相关资料。

source myscript.sh 和 . myscript

把这两个放在一起是因为他们本质上是一回事,. 是source是别名。

这种方式运行脚本时会在当前进程中执行脚本。这种方式运行脚本时局部变量与其父进程共享,当然export的环境变量也是可以共享的。此时脚本不需要可执行权限。

在这里插入图片描述 $$表示当前进程号,$SEHLL表示当前shell解释器



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3