source、sh、bash、./执行脚本的区别

source、sh、bash、./执行脚本的区别

source命令用法:

  source FileName

  作用:在当前bash环境下读取并执行FileName中的命令。该filename文件可以无"执行权限"

注:该命令通常用命令“.”来替代。

如:source .bash_profile

    . .bash_profile两者等效。

source(或点)命令通常用于重新执行刚修改的初始化文档。

source命令(从 C Shell 而来)是bash shell的内置命令。

点命令,就是个点符号,(从Bourne Shell而来)。

sh和bash命令用法:

 sh FileName

 bash FileName

 作用:在当前bash环境下读取并执行FileName中的命令。该filename文件可以无"执行权限"

 注:两者在执行文件时的不同,是分别用自己的shell来跑文件。

sh使用“-n”选项进行shell脚本的语法检查,使用“-x”选项实现shell脚本逐条语句的跟踪,

可以巧妙地利用shell的内置变量增强“-x”选项的输出信息等。

./的命令用法:

 ./FileName

 作用:打开一个子shell来读取并执行FileName中命令。

 注:运行一个shell脚本时会启动另一个命令解释器.

     每个shell脚本有效地运行在父shell(parent shell)的一个子进程里.

        这个父shell是指在一个控制终端或在一个xterm窗口中给你命令指示符的进程.

     shell脚本也可以启动他自已的子进程.

        这些子shell(即子进程)使脚本并行地,有效率地地同时运行脚本内的多个子任务.

shell的嵌入命令:

: 空,永远返回为true
. 从当前shell中执行操作
break 退出for、while、until或case语句
cd 改变到当前目录
continue 执行循环的下一步
echo 反馈信息到标准输出
eval 读取参数,执行结果命令
exec 执行命令,但不在当前shell
exit 退出当前shell
export 导出变量,使当前shell可利用它
pwd 显示当前目录
read 从标准输入读取一行文本
readonly 使变量只读
return 退出函数并带有返回值
set 控制各种参数到标准输出的显示
shift 命令行参数向左偏移一个
test 评估条件表达式
times 显示shell运行过程的用户和系统时间
trap 当捕获信号时运行指定命令
ulimit 显示或设置shell资源
umask 显示或设置缺省文件创建模式
unset 从shell内存中删除变量或函数
wait 等待直到子进程运行完毕

原文地址:https://www.cnblogs.com/is-Tina/p/8643326.html

时间: 2024-08-28 23:42:05

source、sh、bash、./执行脚本的区别的相关文章

详解shell中source、sh、bash、./执行脚本的区别

复制文章:https://www.jb51.net/article/128918.htm 这篇文章主要介绍了shell中source.sh.bash../执行脚本的区别,需要的朋友可以参考下 1.source命令用法: source FileName 作用:在当前bash环境下读取并执行FileName中的命令.该filename文件可以无"执行权限" 注:该命令通常用命令“.”来替代. 如:source .bash_profile . .bash_profile两者等效. sourc

shell命令中用source 和sh(或者bash)执行脚本的区别,以及export的作用

用户登录到Linux系统后,系统将启动一个用户shell,我们暂且称这个shell为shell父. 在这个shell父中,可以使用shell命令或声明变量,也可以创建并运行shell脚本程序. 当使用sh或者bash运行shell脚本程序时,系统将创建一个子shell,我们暂且称为shell子. 此时,系统中将有两个shell,一个是登录时系统启动的shell父,另一个是系统为运行脚本程序创建 的shell子.当一个脚本程序运行完毕,脚本shell子将终止,返回到执行该脚本之前的shell父.

./yy.sh -d bash 执行脚本时所加的参数

-e filename 如果 filename存在,则为真 -d filename 如果 filename为目录,则为真 -f filename 如果 filename为常规文件,则为真 -L filename 如果 filename为符号链接,则为真 -r filename 如果 filename可读,则为真 -w filename 如果 filename可写,则为真 -x filename 如果 filename可执行,则为真 -s filename 如果文件长度不为0,则为真 -h fil

./执行文本和sh命令执行文本的区别

我在这里用实例来说明:(1)我们建一个文件命名为:a,里面输入  “ls - l”;(2)执行chmod 444 a,然后再执行: sh a,达到我们的目的;(3)用./a执行,提示权限不够.(4)chmod 744 a, 用./执行,ok.(5)sh a也ok. 结论:sh命令是调用的shell解析器,因此只要对文件的权限最低要求是可读就行了,而./则要求得更高一些,要有可读.写.执行权限.

使用source或者“.”号执行shell脚本的意义

如果使用source或者"."号执行shell脚本(例如叫son.sh),脚本中的所有语句会被作为当前父shell进程的一部分运行.如果son.sh的执行语句source son.sh 或 . son.sh是某个父shell脚本(father.sh)中的一句,那么son.sh脚本中的变量的值或函数返回值等都会被传递到父shell脚本father.sh中使用. 因此,使用source或者"."号的方法执行shell脚本与使用sh命令执行的最大区别在于前者是在当前she

ssh连接远程主机执行脚本的环境变量问题

用ssh命令ssh [email protected] "/web/tomcat-7000/bin/startup.sh" 登陆到远程机器remote上执行脚本时,遇到一个奇怪的问题:tomcat服务不能启动 Neither the JAVA_HOME nor the JRE_HOME environment variable is definedAt least one of these environment variable is needed to run this progr

Shell执行脚本

Shell作用是解释执行用户的命令,用户输入一条命令,Shell就解释执行这一条,这种方式称为交互式,但还有另一种执行命令的方式称为批处理方式,用户事先写一个Shell脚本,Shell可以一次把这些命令执行完. 如下例子: 第一种执行方式:chmode+x script.sh 执行过程: Shell会fork一个子进程并调用exec执行./script.sh这个程序,exec系统调用会把子进程代码段替换成./script.sh程序的代码段,exec有一种机制,如果要执行的是一个文本文件,并且第一

shell 脚本各种执行方式(source ./*.sh, . ./*.sh, ./*.sh)的区别

结论一: ./*.sh的执行方式等价于sh ./*.sh或者bash ./*.sh,此三种执行脚本的方式都是重新启动一个子shell,在子shell中执行此脚本. 结论二: .source ./*.sh和 . ./*.sh的执行方式是等价的,即两种执行方式都是在当前shell进程中执行此脚本,而不是重新启动一个shell 而在子shell进程中执行此脚本. 验证依据:没有被export导出的变量(即非环境变量)是不能被子shell继承的 验证结果: [[email protected] ~]#n

Linux下sh/bash/source/.命令的区别(转)

一..sh文件介绍 .sh为Linux的脚本文件,我们可以通过.sh执行一些命令,可以理解为windows的.bat批处理文件. 二.点命令(.) .命令和source是同一个命令,可以理解为source的缩写,简称点命令. 三.sh/base/source/.命令执行.sh文件的区别 假如有一个文件test.sh,脚本内容如下 #!/bin/bash echo "step 1 sleeping" sleep 200 echo "step 2 sleeping" s