linux中source命令的使用方式

author author     2023-04-13     319

关键词:

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

source命令可用于:

刷新当前的shell环境

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

从脚本中导入环境中一个Shell函数

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

source命令的语法

source命令它需要一个文件,如果提供了参数,那么将用作传递脚本的位置参数。

source FILENAME [ARGUMENTS]

也可以使用.替代source命令:

. FILENAME [ARGUMENTS]

如何使用source命令

1. 刷新当前的shell环境

可以在当前的shell环境中定义一个别名。为ls -al定义一个别名为ll:

[root@localhost ~]# echo "alias ll='ls -al'" >> ~/.bashrc

在~/.bashrc文件中定义完别名,可以使用source命令刷新当前shell环境:

[root@localhost ~]# source ~/.bashrc

现在可以使用ll别名列出当前目录里所有文件了,包括隐藏文件。

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

Shell脚本不知道你在当前Shell环境中定义的变量。source命令可用于在当前会话中执行你的Shell脚本。

下面在定义一个变量:

[root@localhost ~]# website=https://www. linux probe.com

创建一个脚本:

[root@localhost ~]# vim web.sh

#!/bin/bash

echo $website

使用source在当前shell会话中执行它:

[root@localhost ~]# source web.shhttps://www.linuxprobe.com

当使用sh运行脚本时,找不到环境中定义的变量:

3. 从脚本中导入环境中一个Shell函数

首先创建一个脚本,定义一个函数:

[root@localhost ~]# vim func.sh

#!/bin/bash

foo()

  echo "test function!"



要在当前的shell会话中导入上述脚本的功能,使用下面命令:

[root@localhost ~]# source func.sh

下面在终端中执行以下func.sh脚本中的foo函数试试:

[root@localhost ~]# foo

test function!

source完脚本之后,可以看到在当前回话的终端中可以执行脚本里面的函数。

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

首先创建带有一些变量的shell脚本,请输入:

[root@localhost ~]# vim var.sh

#!/bin/bash

a=1

b=2

c=3

再创建一个脚本,该脚本读取上一个脚本var.sh中的变量:

[root@localhost ~]# vim read.sh

#!/bin/bash

source ~/var.sh

echo $a

echo $b

echo $c

在脚本中首先使用source将var.sh中的变量到处到当前回话,然后echo显示变量值。下面执行read.sh看一下:

5. 读取并执行命令

source命令可以从文件读取和执行命令。下面的一个文本文件中带有两个命令,使用source命令运行该文件,看看是否会执行里面的命令。

下面创建一个文件cmd.txt,保存两个命令:

[root@localhost ~]# cat cmd.txt

ip ad

date

下面使用source执行这个文件:

[root@localhost ~]# source cmd.txt

总结

source命令在当前shell中执行脚本,而exec命令在新的shell中运行。

linux下source命令使用(代码片段)

语法在当前bash环境下读取并执行FileName中的命令。source和.都是以一个脚本为参数,该脚本将在当前shell的环境执行,即不会启动一个新的子shell,所以里面export的变量可以在当前的shell中拿到sourceFileName#或者.FileName 查看详情

linux命令中的cp和scp命令的区别?

...sh本机和其他电脑上的复制。scp是securecopy,也是一个复制命令,是与ssh有关的。scpuser@ip:/dir/filefile或者:scpfileuser@ip:/dir/file要输入user在远端用户的密码。cp,使用权限:所有使用者使用方式:cp[options]sourcedestcp[options]source...directo... 查看详情

解决`source/etc/profile`报错问题

...分析上述文件中,发现,可能是由于配置的alias快捷键(命令别名)恰好是shell的关键字所致,一查,果然在/etc/bashrc的alias中,配置了aliasif=\'ifconfigeno1\'。由于直接在/etc/bashrc中修改有问题的alias已经没办法使之生效,所以需要使... 查看详情

exec和source的简单区别

...行程序或者脚本,要区别二者区别,首先了解linux下的2种命令,内部命令和外部命令: 内部命令是特殊文件格式.def实现的。 外部命令是通过系统调用或者独立程序实现的。其次shell执行脚本的时候有两种方式: 1、... 查看详情

SQL中SOURCE命令的正确语法是啥

】SQL中SOURCE命令的正确语法是啥【英文标题】:WhatisthecorrectsyntaxfortheSOURCEcommandinSQLSQL中SOURCE命令的正确语法是什么【发布时间】:2017-02-1318:16:58【问题描述】:在codeAnywhere中,我尝试运行预先编写的脚本文件来创建表。使用codeA... 查看详情

linux中修改了环境变量,导致大多数命令无法使用的解决方法

     今天修改了环境变量以后,导致linux上的好多命令都无法使用了,ll,ls,rpm,yum,vi,vim,sudo等等命令.唯一能用的就是cd命令了.使用下面的办法就能让你用这唯一一个能用的命令,将环境搞好.方法:1.进到/usr/bin目录下,然后使用./sudosu... 查看详情

linux中fork,source和exec的区别

参考技术A exec和source都属于bash内部命令(builtinscommands),在bash下输入manexec或mansource可以查看所有的内部命令信息。bashshell的命令分为两类:外部命令和内部命令。外部命令是通过系统调用或独立的程序实现的,如sed、awk等... 查看详情

linux系统中source是用来干嘛的~

...能。[实用方法]使用上述五种功能的方法有两种:1)在cc命令中指定,如:cc-D_POSIX_SOURCEfile.c2)将源程序的第一行设置为:#define_POSIX_SOURCE1[_XOPEN_SOURCE是什么?]翻译成汉语表达很蹩脚,英文原版解释如下:Macro:_XOPEN_SOURCEIfyoudefin... 查看详情

在 sh shell 中找不到源命令

】在shshell中找不到源命令【英文标题】:sourcecommandnotfoundinshshell【发布时间】:2012-11-2201:12:55【问题描述】:我有一个使用shshell的脚本。我在使用source命令的行中遇到错误。似乎source不包含在我的shshell中。如果我明确尝试从she... 查看详情

linux中fork,source和exec的区别

exec和source都属于bash内部命令(builtinscommands),在bash下输入manexec或mansource可以查看所有的内部命令信息。bashshell的命令分为两类:外部命令和内部命令。外部命令是通过系统调用或独立的程序实现的,如sed、awk等等。内部命令... 查看详情

虚拟机linux如何挂载本地硬盘

...在/mnt/下应该能看到主机共享的硬盘。参考技术A使用mount命令来挂载就可以。比如,将/dev/sdb1挂载到/mnt/source目录下面:mount/dev/sdb1/mnt/source如果分区的文件系统格式不是linux默认的ext2或者ext3的话,你还要进行指定,使用-t<fstype... 查看详情

linux查看cpu和内存使用情况

...据相应信息分析系统状况的需要。在CentOS中,可以通过top命令来查看CPU使用状况。运行top命令后,CPU使用状态会以全屏的方式显示,并且会处在对话的模式--用基于top的命令,可以控制显示方式等等。退出top的命令为q(在top运行... 查看详情

linux查看cpu和内存使用情况

...据相应信息分析系统状况的需要。在CentOS中,可以通过top命令来查看CPU使用状况。运行top命令后,CPU使用状态会以全屏的方式显示,并且会处在对话的模式--用基于top的命令,可以控制显示方式等等。退出top的命令为q(在top运行... 查看详情

linux中使用export命令设置环境变量

...st_enviroment',这时候就添加了TEST_ENV这一环境变量,通过命令:env|grepTEST_ENV能够查到,而且echo$TEST_ENV的值正是test_enviroment,但是注消之后,这个环境变量就不存在了。我想知道,使用了export这个命令后,这个刚添加的环境变量放... 查看详情

mac系统中使用命令展示目录树结构,实现linux中tree命令的效果

mac系统中使用命令展示目录树结构,实现Linux中tree命令的效果。主要实现下面的效果:在linux下你可以很方便的使用tree命令来查看当前目录下的目录树机构.但是在MAC下,至少你需要安装一个工具。1、使用原生命令如果不想安装额... 查看详情

如何让/etc/security/user做的修改马上生效

...术A方法1:让/etc/profile文件修改后立即生效,可以使用如下命令:#./etc/profile注意:.和/etc/profile有空格方法2:让/etc/profile文件修改后立即生效,可以使用如下命令:#source/etc/profile附:Linux中source命令的用法source命令:source命令也称为“... 查看详情

linux系统sqlplus下怎么退出sql语句

...SQL*Plus环境中,用户以SYSDBA身份连接到Oracle后,可以通过命令行方式启动或关闭数据库。二、OEM(企业管理器)利用OEM数据库控制台,可以完成数据库的启动与关闭操作。三、RMAN在RecoveryManager(RMAN)环境中可以通过命令行方式启动或... 查看详情

如何在不使用命令的情况下以编程方式关闭/重启 linux 机器(运行时)

】如何在不使用命令的情况下以编程方式关闭/重启linux机器(运行时)【英文标题】:Howtoshutdown/rebootlinuxmachineprogramaticallywithoutusingcommands(Runtime)【发布时间】:2017-03-1402:17:28【问题描述】:在Windows中,可以通过Java程序通过本地... 查看详情