首先,通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。例如,当我们修改了/etc/profile文件,并想让它立刻生效,而不用重新登录,就可以使用source命令,如source /etc/profile。
其次,source filepath或者. filepath,sh filepath或者./filepath区别:
1. sh filepath会重新建立一个子shell,在子shell中执行脚本里面的语句,该子shell继承父shell的环境变量,但子shell是新建的,其改变的变量不会被带回父shell,除非使用export。
2. source filename其实只是简单地读取脚本里面的语句依次在当前shell里面执行,没有建立新的子shell。那么脚本里面所有新建、改变变量的语句都会保存在当前shell里面。
因为不会建立新的子shell,变量的值都可以直接取到,我们看一个例子:
我们可以把下面的这些配置当成shell脚本中的赋值语句,然后使用source获取变量的值,因为这个配置不符合任何ini之类格式,所以不好用程序获取:
这里用到了&&,它的作用是左边的命令执行成功,才执行右边的命令;||就相反,左边的命令执行失败,才执行右边的命令。
2>/dev/nul下面看下内容详情
标准输入0 从键盘获得输入 /proc/self/fd/0
标准输出1 输出到屏幕(即控制台) /proc/self/fd/1
错误输出2 输出到屏幕(即控制台) /proc/self/fd/2
/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”
1. 2>/dev/null意思就是把错误输出到“黑洞”
2. >/dev/null 2>&1默认情况是1,也就是等同于1>/dev/null 2>&1。意思就是把标准输出重定向到“黑洞”,还把错误输出2重定向到标准输出1,也就是标准输出和错误输出都进了“黑洞”
3. 2>&1 >/dev/null意思就是把错误输出2重定向到标准出书1,也就是屏幕,标准输出进了“黑洞”,也就是标准输出进了黑洞,错误输出打印到屏幕
关于这里”&”的作用,我们可以这么理解2>/dev/null重定向到文件,那么2>&1,这里如果去掉了&就是把错误输出给了文件1了,用了&是表明1是标准输出。
总结
以上所述是小编给大家介绍的shell中的source命令的巧妙用法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!
本文向大家介绍vue-router中scrollBehavior的巧妙用法,包括了vue-router中scrollBehavior的巧妙用法的使用技巧和注意事项,需要的朋友参考一下 问题:使用keep-alive标签后部分安卓机返回缓存页位置不精确问题 解决方案: 2. 页面返回出现空白屏问题 问题 【前提】:iOS设备 【步骤】: 页面A是个列表很长-->滑到页脚的时候点击跳转之后到页面B--
本文向大家介绍python字典的setdefault的巧妙用法,包括了python字典的setdefault的巧妙用法的使用技巧和注意事项,需要的朋友参考一下 现在有一个员工字典,类似这样的结构 假设我们要给员工添加爱好信息,但是我们不知道hobby这个键存不存在,我们通常的做法是分为三步: 1)从字典中取到hobbies对应的值,如果没有hobbies这个键,则设置这个值为空列表 2)对这个值进
本文向大家介绍Linux中使用top命令的技巧,包括了Linux中使用top命令的技巧的使用技巧和注意事项,需要的朋友参考一下 首先介绍top中一些字段的含义: VIRT:virtual memory usage 虚拟内存 1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等 2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量 RES:res
本文向大家介绍Linux命令技巧之30个必会的命令技巧,包括了Linux命令技巧之30个必会的命令技巧的使用技巧和注意事项,需要的朋友参考一下 在Unix/Linux下,高效工作方式不是操作图形页面,而是命令行操作,命令行意味着更容易自动化。使用过Linux系统的朋友应该都知道它的命令行强大之处。本文讲述了Linux下的查找,删除,打包,解压,查询及VIM等30个常用命令技巧 1、Vim自动添加注
本文向大家介绍Docker与Golang的巧妙结合,包括了Docker与Golang的巧妙结合的使用技巧和注意事项,需要的朋友参考一下 Docker与Golang的巧妙结合 【编者的话】这是一个展示在使用Go语言时如何让Docker更有用的提示与技巧的简辑。例如,如何使用不同版本的Go工具链来编译Go代码,如何交叉编译到不同的平台(并且测试结果!),或者如何制作真正小的容器镜像。 下面的文章假定你
问题内容: 我正在测试短ping测试程序。如果我将简单的ping命令设置功能,它将按设计工作。但是,如果我添加另外平的选择,我有 ping:未知主机源 回信。如果我从x终端手动执行两个命令,则两个命令都能正常工作。 我需要使程序从不同的源接口IP执行ping操作。使用JSch的两个命令有什么区别setCommand? (加工) (不工作) 码: 问题答案: 您的语法对我来说似乎很奇怪。但我相信您,
一、节点增删改查 1.1 启动服务和连接服务 # 启动服务 bin/zkServer.sh start #连接服务 不指定服务地址则默认连接到localhost:2181 zkCli.sh -server hadoop001:2181 1.2 help命令 使用 help 可以查看所有命令及格式。 1.3 查看节点列表 查看节点列表有 ls path 和 ls2 path 两个命令,后者是前者
一、基本命令 打开 Hbase Shell: # hbase shell 1.1 获取帮助 # 获取帮助 help # 获取命令的详细信息 help 'status' 1.2 查看服务器状态 status 1.3 查看版本信息 version 二、关于表的操作 2.1 查看所有表 list 2.2 创建表 命令格式: create '表名称', '列族名称 1','列族名称 2','列名