运行脚本权限不够_Linux中运行shell脚本的几种方式及其区别

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

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

  • ./mysccript.sh
  • sh mysccript.sh
  • source myscript.sh
  • . mysccript.sh

./myscript.sh

  1. 这种方式运行脚本需要myscript.sh在当前目录下,当然其他目录下的脚本也可以输入相应的路径来运行。./ 表示在当前目录寻找这个脚本来执行,不加 ./ 的话系统会去PATH变量中的路径去寻找这个脚本,一般情况下shell脚本又不会放到PATH路径中。
  2. 这种方式需要myscript脚本具有执行权限。
  3. 这种方式可以在脚本的首行指定解释器,如#!/bin/sh,也可以指定如python perl之类的其他解释器,不指定的话默认sh解释器。
  4. 这种方式运行脚本会重新启动一个子进程来运行该脚本,因此局部变量不可与其父进程共享。

sh myscript.sh

  1. 这样运行shell脚本实际上运行的是sh这个命令,并且把myscript当做参数传递给了sh,因此此时myscript.sh是不需要执行权限的。
  2. 此时脚本首行不用指定解释器,指定了也没用。
  3. 这种运行方式同样会重新启动一个子进程来执行脚本,因此局部变量不可与其父进程共享。

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

source myscript.sh 和 . myscript.sh

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

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


$$表示当前进程号,$SEHLL表示当前shell解释器

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值