执行shell脚本的三种方式

您可能不知道,执行shell脚本其实有三种方式,分别是:

  1. 重定向方式
  2. 参数方式
  3. 直接执行
下面分别比较一下每种做法(都以在linux的bash执行脚本sample.sh作为例子)

重定向方式

$sh < sample.sh

缺点:不能给脚本输入任何参数。

参数方式

$sh sample.sh arg1 arg2 arg3

这种方式把脚本文件的名字以及脚本需要的参数作为bash命令的参数,以此来执行脚本。
优点:能输入参数。

另外,如果我想要在当前的shell下面执行脚本,而不要另外启动一个shell进程,则可以用 “.” 来实现:

$. sample.sh

(注意:另外几种方式都会fork一个子进程来执行shell脚本)

它等价于

$source sample.sh

直接执行

这种方式需要修改shell脚本的权限为可执行,然后直接运行该文件。

$chmod a+x sample.sh
$./sample.sh

注意,这里的“.”跟第二种方式里面的“.”意思是不一样的,这里的“.”表示当前目录。因为shell遇到输入时,会从PATH环境变量指定的目录里面搜索命令,而当前目录又不在这里面,所以需要用这种方式给出该脚本文件的地址(相当于给出了绝对路径)。或者,也可以用如下方式来把当前目录添加到PATH里面(仅对当前shell执行命令有效,重新打开shell就失效了)

$export PATH="$PATH:."



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值