在shell中source filename 和 . filename是一样的,但source和 ./filename.sh的执行结果有很大区别,借用一张网上的图。如下

可以看到通过./filename.sh执行shell脚本,脚本内执行的命令和设置的环境变量不影响执行shell脚本的shell环境变量,而使用source filename则会影响到执行source filename的shell的环境变量。
以下是三种执行文件的方法比较

  1. source命令用法:
    source filename
    作用:

    在当前bash环境下读取并执行filename中的命令。该filename文件可以无执行权限”

    注:该命令通常用命令“.”来替代。

    如:source .bash_profile 和 . .bash_profile两者等效。
    source(或点)命令通常用于重新执行刚修改的初始化文档。
    source命令(从 C Shell 而来)是bash shell的内置命令。
    点命令,就是个点符号,(从Bourne Shell而来)。

  2. sh和bash命令用法:
    sh filename bash filename
    作用:

    打开新的子shell,读取并执行filename中的命令。该filename文件可以无“执行权限”

    注:两者在执行文件时的不同,是分别用自己的shell来跑文件。

    sh使用“-n”选项进行shell脚本的语法检查,使用“-x”选项实现
    shell脚本逐条语句的跟踪,可以巧妙地利用shell的内置变量增强
    “-x”选项的输出信息等。

  3. ./的命令用法:
    ./filename
    作用:

    打开一个子shell来读取并执行FileName中命令。

    注:运行一个shell脚本时会启动另一个命令解释器.

Linux中source filename .(点)filename ./filename sh filename的区别相关推荐

  1. linux source 命令位置,linux中source命令的使用方法

    linux中source命令的使用方法 发布时间:2021-05-08 12:29:18 来源:亿速云 阅读:77 作者:小新 这篇文章主要介绍linux中source命令的使用方法,文中介绍的非常详 ...

  2. linux的source命令,Linux中source命令的用法

    Linux中source命令的用法 Linux系统中,source命令通常用"."来代替,是一个点命令,与一般的命令有所不同,下面小编就给大家介绍下Linux中source命令的用 ...

  3. Linux中使用ps、awk、sh一起批量杀死所有的dotnet进程。

    一.操作 Linux中使用ps.awk.sh一起批量杀死所有的dotnet进程. 二.参考命令 ps -ef|grep dotnet|awk 'NR==2{print "kill " ...

  4. Linux 中 which、whereis、locate、find的区别

    Linux 中 which.whereis.locate.find的区别 which whereis locate find 总结 which which [-a] cmdname1 cmdname2 ...

  5. linux挂载到哪个分区,Linux中直接挂载硬盘和挂载分区有什么区别?

     1.问题 Linux中直接挂载硬盘和挂载分区有什么区别? 比如 /dev/sdb 的硬盘,直接mkfs.ext4 /dev/sdb 后mount 使用, 和 先fdisk 分区 ,在 mkfs ...

  6. linux中进程退出函数:exit()和_exit()的区别

    linux中进程退出函数:exit()和_exit()的区别 (1)_exit()执行后立即返回给内核,而exit()要先执行一些清除操作,然后将控制权交给内核. (2)调用_exit函数时,其会关闭 ...

  7. Linux中fstat、stat和lstat的用法与区别

    stat系统调用系列包括了fstat.stat和lstat,它们都是用来返回"相关文件状态信息"的,三者的不同之处在于设定源文件的方式不同. struct stat结构体 首先隆重 ...

  8. Linux中rz -y命令和rz -E命令的区别

    把文件上传到Linux中可以用rz指令,一般小文件我们都是用rz -y来进行上传文件,除此之外还可以用rz -E. 我是用的xshell6来链接Linux的,通常手敲指令都是用rz -y,另外还可以直 ...

  9. Linux中静态库和动态库(共享库)的区别

    1. 静态库和动态库的制作过程区别 1.1 静态库的制作过程 详见博客:Linux中静态库的制作与使用 1.2 动态库的制作过程 详见博客:Linux中动态库(共享库)的制作与使用 2. 静态库和动态 ...

最新文章

  1. Java中的异常和递归
  2. 青少年软件编程等级考试 python-中国电子学会、北大等推出青少年软件编程等级标准升级版...
  3. 百度搜索,你画了好大一张饼,你还打算欺骗多少人呢?有图为证
  4. mysql 5.7.25 的安装与 安装错误修改 适用于5.7解压版
  5. Java中String类 compareTo()方法比较字符串详解
  6. 【题解】生日蛋糕-C++
  7. python 多线程笔记(2)-- 锁
  8. 无重复字符最长字串的滑动窗口结合哈希表解法(注释详尽)
  9. 洛谷 1429 平面最近点对(加强版) 快排 非点分治或kdtree
  10. [Azure][PowerShell][ASM][04]Storage
  11. android手势解锁代码,纯android代码实现九宫格手势密码
  12. java实现pdf黑白化 : pdf转图片、图片黑白化、图片转pdf
  13. 如何使用 Echarts 给绘制出来的地图描边
  14. 活水决策体系五:自我觉察与控制
  15. win7网络不显示共享计算机,win7查找不到网络计算机怎么办_win7看不到网络计算机怎么解决-win7之家...
  16. 万字长文带你解读Linux
  17. python分析qq好友_Python2.7获取QQ空间部分好友
  18. 马克下, 初识 runtime (一)
  19. coreldraw x4怎么写字_CorelDRAW实例:给文字排版的几个小技巧(4)
  20. 搭建邮箱服务器hMailServer详细教程(Windows)

热门文章

  1. Delphi中的线程类--之(2)
  2. Linux:写一个简单的shell求和脚本并运行
  3. 你离年薪50w的架构师还差多远
  4. 为什么架构师工资比运维高?
  5. html做成小程序,微信小程序——简单静态网页的制作
  6. oracle锁资源不够,Oracle解锁,解决“ora00054:资源正忙”错误
  7. 如何监控工程项目进度?
  8. HDU 2708.Vertical Histogram
  9. 【C/C++】fstream详解
  10. 3.17 学习情况总结