
1,源命令用法:
源文件名
功能: 在当前bash环境中读取并执行FileName中的命令. 文件名文件不能具有“执行权限”
注意: 此命令通常替换为命令“. ”.
例如: source .bash_profile
. .bash_profile是等效的.
The
source(或点)命令通常用于重新执行新修改的初始化文档.
源命令(来自C Shell)是bash shell的内置命令.
dot命令是一个点符号(来自Bourne Shell).
2,sh和bash命令的用法:

sh文件名
bash文件名
功能: 在当前bash环境中读取并执行FileName中的命令. 文件名文件不能具有“执行权限”
注意: 两者在执行文件时的区别是使用它们自己的外壳程序来运行文件.
sh使用“ -n”选项检查外壳脚本的语法,并使用“ -x”选项逐条语句跟踪外壳脚本语句,
您可以使用外壳程序的内置变量来增强“ -x”选项的输出信息.
3 ../命令用法:
./ FileName
功能: 打开一个子外壳,以读取并执行FileName中的命令.
注意: 运行shell脚本时,将启动另一个命令解释器.
每个shell脚本都有效地在父shell的子进程中运行.

此父外壳程序是指在控制终端或xterm窗口中为您提供命令指示符的过程.
shell脚本也可以启动自己的子进程.
这些子外壳(即子进程)使脚本能够并行高效地同时运行脚本中的多个子任务.
shell的嵌入命令:
: 空,始终返回true
. 从当前外壳执行操作
休息片刻,直到案子陈述
cd更改为当前目录
继续执行循环的下一步
将反馈信息回传到标准输出
评估读取参数并执行结果命令

exec执行命令,但不在当前shell中执行
退出以退出当前shell
export导出变量,以便当前的shell可以使用它
pwd显示当前目录
read从标准输入中读取一行文本
readonly将变量设为只读
返回以返回值退出函数
set控制将各种参数显示到标准输出
将shift命令行参数向左移动
测试评估条件表达式
times显示外壳程序运行过程的用户和系统时间

捕获信号时陷阱运行指定的命令
ulimit显示或设置外壳资源
umask显示或设置默认文件创建模式
从外壳程序内存中删除删除变量或函数
等待子进程完成运行
让我们看一下Shell脚本的各种执行方法之间的区别(源./*. sh,.. / *. sh,. / *. sh)
结论1: ./*. sh的执行方法等效于sh ./*.sh或bash ./*.sh. 执行脚本的三种方式是重新启动子外壳,在该子外壳中执行此脚本.
结论2: .source ./*.sh和../*.sh的执行方法是等效的,也就是说,两种执行方法是在当前Shell进程中执行此脚本shell脚本执行不加sh,而不是重新启动Shell并在subshell进程中执行此脚本.
验证依据: 子shell不能继承未导出的变量(即非环境变量)
验证结果:
[root@localhost ~]#name=dangxu //定义一般变量
[root@localhost ~]# echo ${name}
dangxu
[root@localhost ~]# cat test.sh //验证脚本,实例化标题中的./*.sh
#!/bin/sh
echo ${name}
[root@localhost ~]# ls -l test.sh //验证脚本可执行
-rwxr-xr-x 1 root root 23 Feb 6 11:09 test.sh
[root@localhost ~]# ./test.sh //以下三个命令证明了结论一
[root@localhost ~]# sh ./test.sh
[root@localhost ~]# bash ./test.sh
[root@localhost ~]# . ./test.sh //以下两个命令证明了结论二
dangxu
[root@localhost ~]# source ./test.sh
dangxu
[root@localhost ~]#
摘要
以上是小编介绍给您的shell中的source,sh,bash,. / execution脚本之间的区别. 希望对大家有帮助. 如有任何疑问,请给我留言,小编会及时回复我们的. 非常感谢您对我们网站的支持!
本文标题: 解释shell中源脚本,shshell脚本执行不加sh,bash和./execution脚本之间的区别
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-264860-1.html
来就来呗