Bash命令对后来输入的文件做了什么?

时间:2016-04-07 07:00:58

标签: bash shell

我刚刚了解到bash命令在您正在使用的任何shell中打开一个新的Bash shell,并使用.bashrc的配置文件作为其命令。

本周早些时候,当我安装Laravel时,我使用了bash init.sh命令。现在我想知道,bash init.sh命令究竟做了什么?为什么我需要打开一个新的shell来执行或打开init.sh中的任何内容?

1 个答案:

答案 0 :(得分:0)

引用man bash *

  

<强> ARGUMENTS

     

如果参数处理后参数仍然存在,并且未提供-c-s选项,则假定第一个参数是包含shell命令的文件的名称。如果以这种方式调用bash,则$0设置为文件名,位置参数设置为其余参数。 Bash 从此文件中读取并执行命令,然后退出。 Bash 的退出状态是脚本中执行的最后一个命令的退出状态。如果没有执行任何命令,则退出状态为0.首先尝试在当前目录中打开文件,如果没有找到文件,则shell在PATH中搜索目录中的脚本。

换句话说:bash <file>执行<file>作为Bash脚本。你将获得一个新的交互式shell。

请注意,这不是指定应该使用哪个shell(或实际上任何命令)来执行脚本的唯一方法:为此使用shebang是很常见的,这样脚本就可以被执行'本身。

*我手边的那个,Bash v4.3.42。