浅析shell中source命令和.逗号命令对当前父shell的影响
来源:互联网 发布:淘宝代购店铺名字 编辑:程序博客网 时间:2024/05/16 14:45
lu1() {
echo 'aaaaaaaaa'
}
lu2() {
echo 'bbbbbbbbb'
}
上面就是,run.sh的源码了,可以看到只有2个函数定义没有任何地方来调用这两个函数,那么我们如果这样执行:
luther@gliethttp:~$ ./run.sh
luther@gliethttp:~$
可以看到什么都没有,因为没有地方调用这2个函数,我们希望在我们的luther@gliethttp:~$ 提示符后面调用这2个函数,来试试,
luther@gliethttp:~$ lu1
bash: lu1: command not found
luther@gliethttp:~$ lu2
bash: lu2: command not found
luther@gliethttp:~$
结果都提示找不到命令,是不是我们的这个需求shell还不提供支持呢,当然不是,这样有用的需求shell早就为我们做好解决方案了,来看看怎么实现,
shell中有2个命令可以完成我们的工作,一个是source另一个就是和source等效的.逗号运算符:
luther@gliethttp:~$ . run.sh或者luther@gliethttp:~$source run.sh
这样我们run.sh脚本中创建的变量和函数就添加到了执行.或source的shell,直到关闭该shell窗口,否则run.sh中创建的变量和函数将一直有效,
如果我们只是执行./run.sh启动一个subshell来运行我们的run.sh脚本,那么run.sh脚本中的变量和函数将紧紧影响到由shell启动的subshell,当./run.sh脚本退出之后,run.sh变量和函数的影响寿命也到了尽头。
来看看现在的现象:
luther@gliethttp:~$ ./run.sh
luther@gliethttp:~$ lu1
bash: lu1: command not found
luther@gliethttp:~$ lu2
bash: lu2: command not found
luther@gliethttp:~$ . run.sh
luther@gliethttp:~$ lu1
aaaaaaaaa
luther@gliethttp:~$ lu2
bbbbbbbbb
luther@gliethttp:~$
重新启动一个新shell:
luther@gliethttp:~$ ./run.sh
luther@gliethttp:~$ lu1
bash: lu1: command not found
luther@gliethttp:~$ lu2
bash: lu2: command not found
luther@gliethttp:~$ source run.sh
luther@gliethttp:~$ lu1
aaaaaaaaa
luther@gliethttp:~$ lu2
bbbbbbbbb
luther@gliethttp:~$
- 浅析shell中source命令和.逗号命令对当前父shell的影响
- 浅析shell中source命令和.逗号命令对当前父shell的影响
- shell中source命令和.点命令对当前父shell的影响
- shell中source命令
- Shell 的source命令
- Shell 的source命令
- shell中“source”、“.”和“bash”命令
- linux shell 中source 命令
- shell 的source 命令详解
- shell3 source 命令和./ 命令的区别 &shell编程:EOF
- linux命令介绍:source -- 在当前shell环境中执行指定文件中的命令
- Linux shell source命令
- Shell[三]: source命令
- LINUX Shell脚本中点号和source命令
- Linux Shell脚本中点号和source命令
- Linux Shell脚本中点号和source命令
- LINUX Shell脚本中点号和source命令
- LINUX Shell脚本中点号和source命令
- ORACLE常用的一些时间函数
- linux内核书籍
- 查询MY SQL数据库IO,查询等各种指标
- 第三范式的简单理解
- C书籍
- 浅析shell中source命令和.逗号命令对当前父shell的影响
- java.lang.NoClassDefFoundError: weblogic/kernel/KernelStatus
- Javascript书籍
- 分布式系统协调zookeeper
- OEM(同行),待研究确定;
- 仿百度贴吧项目实战错误分析
- 自动数据库诊断监控 ADDM(Automatic Database Diagnostic Monitor)!
- 深入理解Javascript闭包
- Spotify证实即将发布iPad应用,HTML 5为其铺路