我在寻找运行Appium与Jenkins的脚本时,阅读到以下内容:
#!/bin/bash --login
killall -9 "iPhone Simulator" &> /dev/null
killall -9 node &> /dev/null
killall -9 instruments &> /dev/null
...
我不明白为什么脚本的第一行需要在这里传递
--login
选项。我已经阅读了帮助文档,但仍有些困惑。从帮助文档中我得到的是,传递
--login
参数可以使脚本被称为登录shell
而不是交互式shell
。 交互式shell
是用户可以与之交互的shell,例如通过键盘输入内容。但是登录shell
是什么?根据man页,它会加载~/.bash_profile
文件。但是如果我通过Mac OSX的Terminal.app打开终端,它也会加载~/.bash_profile
文件,我也能够与shell进行交互,对吗?那么,我打开的shell既是登录shell
又是交互式shell
?
.bash_profile
被读取并不一定意味着这一点。大多数人不理解 shell 初始化过程的工作方式,因此将一个 init 文件集合中的链接与另一个集合中的链接相连,以便无论是什么类型的 shell,所有东西都被加载(这是许多发行版的默认配置)。 - Etan Reisner