当我们使用 sh test.sh 、bash test.sh 、 ./test.sh
运行脚本都会使用一个新的shell环境来执行脚本内的命令,
当子进程完成后,子进程内的各项变量和操作将会结束而不会传回到父进程中。

source方法执行脚本是在父进程中执行的,test.sh的各项操作都会在原本的shell内生效。
不注销系统而要让某些写入~/.bashrc的设置生效时,需要使用 source ~/.bashrc 而不能使用 bash ~/.bashrc

./test.sh 来执行脚本,该方式与 bash test.sh 是一样的 ,默认使用 bin/bash 来执行我们的脚本。
只有该种执行方式需要对文件添加执行权限,其他方式并不需要。

sh、bash、dash三者有些许差别,对于部分关键字如 let,bash支持,而sh和dash并不支持,对于部分关键字则选择使用bash。
这三者的file文件可以无"执行权限"

简单来看
source与另4个最大区别为:是否影响当前shell
./xx和另3个,区别在是否文件需要执行权限
另外3个其实差不多,实际使用可能体会不到,或者不需要关注

参考:
https://blog.csdn.net/u012336923/article/details/50474692
https://www.jb51.net/os/Ubuntu/56385.html

ubuntu中bash,sh,./,bash区别相关推荐

  1. linux中./和sh的区别

    sh是一个shell.运行sh a.sh,表示我使用sh来解释这个脚本:如果我直接运行./a.sh,首先你会查找脚本第一行是否指定了解释器,如果没指定,那么就用当前系统默认的shell(大多数linu ...

  2. Ubuntu中install.sh文件如何执行

    在下载的安装包当中的install.sh直接运行无法运行,需要在shell当中使用管理员权限安装. sudo ./install.sh

  3. bash xx.sh与sh xx.sh以及./xx.sh的区别

    在ubuntu中,sh只是bash的一个链接,执行的程序都是一样的,命令解释器是一样的.但bash xx.sh和./xx.sh和sh xx.sh还是有不同的,bash xx.sh和sh xxx.sh都 ...

  4. linux shell中./a.sh , sh a.sh , source a.sh, . ./a.sh的区别

    在linux shell中, 执行shell script的方式有多种, 有什么区别呢? 现在用一个简单例子再来说下. a.sh的内容是: #! /bin/bash echo hello world ...

  5. shell中source、sh、bash、./的区别

    一.sh和bash的区别 sh和bash基本是一样,在我的linux环境查看,它俩是一样的: [root@unis0612p02-165 run]# ls -al `which sh` lrwxrwx ...

  6. Shell脚本中:#!/bin/bash和#!/bin/sh是什么意思以及区别?

    意思:#!/bin/sh是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面跟的是解释此脚本的shell的路径. 其实第一句的#!是对脚本的解释器程序路径,脚本的内容是由解释器解释的,我 ...

  7. 执行sh脚本提示“[[: not found”解决方案,bash和sh的区别

    背景 不想听我罗嗦,可以直接跳转到最后. 笔记本买回来自带windows10,然后由于好奇心重,又给它折腾装上了ubuntu(本来是想支持国产deepin,奈何问题太多).万恶之源开始,ubuntu很 ...

  8. sh/bash/csh/Tcsh/ksh/pdksh等shell本质区别

    sh/bash/csh/Tcsh/ksh/pdksh等shell本质区别 1. Shell脚本的书写 在写Shell脚本时,往往第一行要注明用什么解释器来解释这个脚本. 如#!/bin/bash即用/ ...

  9. 深入了解bash与sh的区别

    在我们所使用的系统当中,使用sh调用执行脚本,相当于打开了bash的POSIX标准模式 (等效于bash的 --posix 参数) 一般的,sh是bash的"子集" (不是子集的部 ...

最新文章

  1. linux系统密码自动丢失,通过单用户模式找回linux系统丢失的密码
  2. mysql format不要逗号,mysql格式化小数
  3. Swift之深入分析字典的下标访问方法的源码调试和汇编实现
  4. 前端学习(1523):vue-cli项目目录介绍
  5. 使用嵌套循环,打印四行五列星星矩形(每次只能打印一个*)
  6. 用MVC做可拖拽的留言板,利用 Jquery模板 -- JsRender
  7. Java 学习 day09
  8. U盘检测及量产工具大合集
  9. 保姆级win7下配置虚拟机-安装Ubuntu20.04
  10. 保龄球计分c语言程序,求C语言代码解释(保龄球记分程序)
  11. 完全解析为什么0.1+0.2=0.30000000000000004
  12. poj1125 Stockbroker Grapevine Floyd算法
  13. Delphi官方下载地址
  14. BT下载的原理 和疑问
  15. Rockchip Android平台GPU/DDR负载变频阈值调整方法
  16. GOM登录器配置免费版生成图文教程
  17. 【锐捷交换】接入交换机配置DHCP Snooping + IP Source guard + ARP-check
  18. STM32CubeMX学习——旋转编码器模块
  19. 局域网文件服务器怎么备份数据,局域网文件备份软件的使用教程
  20. 【Windows】重建图标缓存

热门文章

  1. 上传文件到阿里云OSS报错-Unable to execute HTTP request: You have no right to access this object because of buc
  2. Spring----getBean的四种用法
  3. CTO 深度解读 SMTX OS 3.5 产品特性
  4. 团体程序设计天梯赛-练习集-L1-036. A乘以B
  5. mysqld.exe
  6. Mac下安装MySQL(Mac 10.12)
  7. 《html5 从入门到精通》读书笔记(三)
  8. Sliverlight中使用Path绘制复杂几何图形
  9. iframe中元素的获取
  10. ObjectDataSource控件的使用...