我刚刚了解到bash
命令在您正在使用的任何shell中打开一个新的Bash shell,并使用.bashrc
的配置文件作为其命令。
本周早些时候,当我安装Laravel时,我使用了bash init.sh
命令。现在我想知道,bash init.sh
命令究竟做了什么?为什么我需要打开一个新的shell来执行或打开init.sh
中的任何内容?
答案 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。