0
点赞
收藏
分享

微信扫一扫

【Command】bash、sh、./、source 啥区别?

小龟老师 2022-06-21 阅读 75

先看一个过程

jiaming@jiaming-System-Product-Name:/tmp$ vim func.sh
jiaming@jiaming-System-Product-Name:/tmp$ cat func.sh
#!/bin/bash
#============================================================================
#
# Author: jiaming - jmzhang2020@lzu.edu.cn
#
# blog : jiaming.blog.csdn.net
#
# Last modified: 2020-12-03 17:08
#
# Filename: func.sh
#
# Description:
#
#=============================================================================
function func {
echo "This is func."
}

func
jiaming@jiaming-System-Product-Name:/tmp$ source func.sh
This is func.
jiaming@jiaming-System-Product-Name:/tmp$ . func.sh
This is func.
jiaming@jiaming-System-Product-Name:/tmp$ sh func.sh
func.sh: 15: func.sh: function: not found
This is func.
func.sh: 17: func.sh: Syntax error: "}" unexpected
jiaming@jiaming-System-Product-Name:/tmp$ bash func.sh
This is func.
jiaming@jiaming-System-Product-Name:/tmp$ ./func.sh
bash: ./func.sh: Permission denied
jiaming@jiaming-System-Product-Name:/tmp$ sudo ./fuc.sh
[sudo] password for jiaming:
This is func.
jiaming@jiaming-System-Product-Name:/tmp$ chmod +x func.sh
jiaming@jiaming-System-Product-Name:/tmp$ ./func.sh
This is func.

这些运行脚本方式的区别是什么?

  1. sh/bash:打开一个子shell,xxx.sh 不需要有执行权限。
  2. ./:打开一个子shell,xxx.sh 需要有执行权限。
  3. source.:二者相同,都会在当前shell中读取、执行xxx.sh。


举报

相关推荐

0 条评论