bash;"./";".";source运行脚本的区别

bash与./ 和source与. 运行脚本的区别(source和.等价)。下面我们详细解释一下,

如图所示,PPID父进程 ,当前进程为$$。

source命令即点(.)命令,在bash下输入man source,找到source命令解释处,可以看到解释"Read and execute commands from filename in the current shell environment and ..."。从中可以知道,source命令是在当前进程中执行参数文件中的各个命令,而不是另起子进程。

bash和"./"命令都是打开一个子shell来读取并执行FileName中命令。该filename文件可以无“执行权限”。
当然,配置文件就是影响当前的工作环境,这种情况下用source。**

原文地址:http://blog.51cto.com/13877926/2154845

时间: 2024-10-15 23:23:31

bash;"./";".";source运行脚本的区别的相关文章

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

source.sh.bash../执行脚本的区别 source命令用法: source FileName 作用:在当前bash环境下读取并执行FileName中的命令.该filename文件可以无"执行权限" 注:该命令通常用命令"."来替代. 如:source .bash_profile . .bash_profile两者等效. source(或点)命令通常用于重新执行刚修改的初始化文档. source命令(从 C Shell 而来)是bash shell的内置命

详解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父.

单独运行shell脚本与crontab运行shell脚本的区别

crontab运行脚本存在两大问题:环境变量和路径,从而导致单独运行脚本没问题,但用crontab运行就报错. 1.环境变量 描述问题:crontab: usage error: no arguments permitted after this option 因为crontab不提供环境,所以需要自己在shell中加入,或者全部用绝对路径.简单的方法:控制台输入 [[email protected] ~]# echo $PATH /your/path/1:/your/path/2------

linux中fork, source和exec的区别

转:linux中fork, source和exec的区别 shell的命令可以分为内部命令和外部命令. 内部命令是由特殊的文件格式.def实现的,如cd,ls等.而外部命令是通过系统调用或独立程序实现的,如awk,sed. source和exec都是内部命令. fork   使用 fork 方式运行 script 时, 就是让 shell(parent process) 产生一个 child process 去执行该 script, 当 child process 结束后, 会返回 parent

bin/bash 和 /bin/sh 的区别

今天在用ssh Secure shell 连接虚拟机中的Ubuntu编写程序时,想比对一下两个源代码有什么差别,但是在一个ssh 客户端下不断的切换很是费劲.于是想着在主机中再添加一个用户.我原本用ssh Secure shell 登陆用的是root用户.于是想着添加一个sshConnect用户.于是在服务器的终端下通过使用 useradd命令和passwd命令添加了一个sshConnect用户,查看/etc/passwd 文件中的最后一行有sshConnect用户的数据. 但是当我通过ssh

Shell中source/fork/exec的区别

fork是linux的系统调用,用来创建子进程,子进程是父进程的一个副本,从父进程那里获得一定的资源分配以及继承父进程的环境.子进程与父进程唯一不同的地方在于pid(process id).环境变量(传给子进程的变量,遗传性是本地变量和环境变量的根本区别)只能单向从父进程传给子进程.不管子进程的环境变量如何变化,都不会影响父进程的环境变量.默认shell中的命令都是此种方式,创建sub-shell,然后执行.执行完后,返回父shell. exec和source都属于bash内置命令,执行sour

Bash玩转脚本4之搞一套完整的Android反编译与分包工具

一.前言 正在搞IOS的微信支付和支付宝支付,焦头烂额之时,天上掉下来一个Android分包工具的需求,觉得还蛮有意思,其实之前一直想搞一个类似的东西,正好趁着这次机会实践一下. [原文地址] (http://blog.csdn.net/yang8456211/article/details/52513354 ) (先说清楚需求,这个分包工具要干什么) 从产品角度 拿到一个apk安装包,然后用这个包去生成n个包,这n个包需要有特定的标示,能够根据包的标示去收集信息,而且这个n个包彼此不能覆盖安装

在shell中运行以不同方式运行脚本

在shell当中,可以有3中方式运行脚本: 1 . ./script_name 或者source ./script_name 2 直接./script_name 3 ./script_name & 加入脚本script_name中有两个命令command1,command2,那么,当以第一种方式运行时,command1和command2都在当前shell中运行,并没有产生subshell,如下图所示: 当script_name以第2中方式运行时,当前shell会产生一个subshell,comm