文章目录

  • 一、概述
  • 二、用途
    • 1、刷新当前shell环境
    • 2、在当前环境使用source执行Shell脚本
    • 3、从脚本中导入一个shell功能函数
    • 4、从另一个Shell脚本中读取变量

一、概述

source命令是一个内置的shell命令,用于从当前shell会话中的文件读取和执行命令。source命令通常用于保留、更改当前shell中的环境变量。简而言之,source一个脚本,将会在当前shell中运行execute命令。

source命令的作用:

  • 刷新当前的shell环境
  • 在当前环境中使用source执行shell脚本
  • 从脚本中导入一个shell功能函数
  • 从另一个shell脚本中读取变量

source命令的用法:

  • source FILENAME [ARGUMENTS]
  • source可替换为.

二、用途

1、刷新当前shell环境

source ~/.bash_profile

家目录下的.bash_profile 是一个隐藏文件,主要是用来配置bash shell的。source ~/.bash_profile 则可让这个配置文件在修改后立即生效。

2、在当前环境使用source执行Shell脚本

Shell脚本不知道你在当前Shell环境中定义的变量。source命令可解决这个问题。

# 定义一个变量
[root@localhost ~] url=www.baidu.com# 写测试脚本source.sh
[root@localhost ~] vi source.sh
[root@localhost ~] cat source.sh
#!/bin/sh
echo $url#此时用sh执行脚本
[root@localhost ~] sh source.sh
输出为空#用source执行脚本时,找不到环境中定义的变量
[root@localhost ~] source source.sh
www.baidu.com#用.执行脚本
[root@localhost ~] . source.sh
www.baidu.com#注意和./source.sh方式的区别
[root@localhost ~] ./ source.sh
-bash: ./source.sh:Permission denied
加可执行权限
[root@localhost ~] chmod +x source.sh
[root@localhost ~] ./ source.sh
输出为空

以上实例,除了重点source外,sh和./的区别与联系,source和.的等价也需注意。

3、从脚本中导入一个shell功能函数

#写脚本定义函数tool
[root@localhost ~] vi func.sh
#!/bin/bash
tool(){echo "function test!"
}#在当前shell中导入脚本func.sh中定义的功能
[root@localhost ~] source func.sh
[root@localhost ~] tool
function test!

4、从另一个Shell脚本中读取变量

#创建一个带有变量的脚本var.sh
[root@localhost ~] vi var.sh
#!/bin/bash
a=1
b=2
c=3#创建脚本read.sh,脚本内读取var.sh的变量
[root@localhost ~] vi read.sh
#!/bin/bash
source ~/var.sh
echo $a
echo $b
echo $c#执行read.sh查看是否成功获取
[root@localhost ~] sh read.sh
1
2
3

最后,关于exec和source:
source命令在当前shell中执行脚本,而exec命令在新的shell中运行。

Linux指令-source相关推荐

  1. Linux 指令大全(3)

    2019独角兽企业重金招聘Python工程师标准>>> Linux 指令大全(3) 名称:/etc/aliases 使用权限:系统管理者 使用方式: 请用 newaliases 更新 ...

  2. 初学者必备Linux指令

    初学者完成Linux系统安装以后,学习Linux操作系统必备的指令,基于Linux指令管理Linux操作系统,必备Linux指令有哪些? 基础命令相关一: Cd.ls.pwd.help.man.if. ...

  3. 《Linux指令从入门到精通》——4.3 Linux下全屏幕文本编辑器的命令行方式

    本节书摘来自异步社区<Linux指令从入门到精通>一书中的第4章,第4.3节,作者:宋磊 , 宋馥莉 , 雷文利著,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...

  4. linux 指令大全

    linux 指令大全  版权信息        作者 未知  文章出处 天津linux 热线  文档制作 拒绝正版  名称 cat   使用权限 所有使用者   使用方式 cat [-AbeEnstT ...

  5. linux指令大全[1](转)

    linux指令大全[1](转) cat cd chmod chown cp cut 名称:cat 使用权限:所有使用者 使用方式:cat [-AbeEnstTuv] [--help] [--versi ...

  6. linux指令大全(完整篇)

    linux指令大全(完整篇) 名称:cat 使用权限:所有使用者 使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName 说明:把档案串连接后传到基本 ...

  7. 学习大数据的第29天——Linux指令的学习以及一些面试题

    学习大数据的第29天--Linux指令的学习以及积累一些面试题 Linux指令 常用命令: 查看网络 ip addr ​ 重启网络 systemctl restart network ​ 查看主机名 ...

  8. linux 指令使用大全

    目录 md5sum su与su - 的区别 从windows上传下载文件 rz参数 sz参数 Linux命令行中的 符号 '\' ,' --'的作用 profile.bash_profile.bash ...

  9. VI使用手册及linux指令集合

    vi使用手册(zt) 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开 ...

最新文章

  1. CNN模型 INT8 量化实现方式(一)
  2. Spring Boot 动态数据源(多数据源自己主动切换)
  3. Java学习笔记23
  4. mysql 事物 锁行 测试_MySQL Transaction--RC事务隔离级别下加锁测试
  5. pytorch索引查找 index_select
  6. gta5结局杀老崔我哭了_都已经2020年了,怎么还有人在买GTA5?
  7. 阿里巴巴有一群全年无休从不领工资的高智商员工
  8. python requests post请求_Pythonrequest发送post请求
  9. 离散对数(关于方程x^A=B(mod C)的解)
  10. 弱口令上传shell_emlog后台拿shell
  11. BaaS API 设计规范
  12. Vue packages version mismatch:- vue@2.6.14 - vue-template-compiler@2.6.11解决方法
  13. 揭密 Vue 的双向绑定
  14. matlab ofdm系统 过采样和欠采样,过采样和欠采样
  15. app支付宝接入流程图_支付宝资金预授权开通免押租赁系统,芝麻信用免押租赁app/小程序...
  16. 广州市二手房源数据采集和可视化分析(链家二手房)Python
  17. 完美卸载itunes
  18. caiguai docker-xware_黑科技——通过docker+xware在群辉DSM 6.0系统实现迅雷远程下载-Go语言中文社区...
  19. R语言 在R中实现vlookup的功能
  20. 奔梦向前-代码实现表白男生女生-2020-06-15

热门文章

  1. 怎样录制电脑内部发出的声音
  2. 魔龙之魂服务器无响应,魔龙之魂总是显示无法连接网络
  3. 字典树与双数组字典树总结
  4. 免拆诊断 | 2015 款宝马 730Li 车发动机抖动
  5. 传奇服务端在线领取战宠助手宝宝的脚本
  6. 词云图、动态图、统计图、玫瑰图、象形图、多渐变色柱状图、双色叠加象形图等十个图(可单独运行,直接拿来用)
  7. 文章分享到新浪微博,人人网,开心网和天涯社区的代码
  8. Nexus3.6 window版私服搭建 安装、配置教程
  9. iso 软件测试控制程序,最新ISO17025:2017一整套程序文件完整版(共38个程序)
  10. centos7/8--开机启动流程(附图片)