1. jenkins执行shell默认参数为bash -xe,先了解下面基础知识
1.1 什么是交互式shell(interactive shell)和非交互式shell(non-interactive shell)
交互式的shell会有一个输入提示符,并且它的标准输入、输出和错误输出都会显示在控制台上。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、退出。当你退出后,shell也终止了。
非交互式shell是bash script.sh这类的shell。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾EOF,shell也就终止了。
1.2 什么是登录式shell(login shell)和非登陆式shell(no-login shell)
需要输入用户名和密码的shell就是登陆式shell。因此通常不管以何种方式登陆机器后用户获得的第一个shell就是login shell。不输入密码的ssh是公钥打通的,某种意义上说也是输入密码的。
非登陆式的就是在登陆后启动bash等,即不是远程登陆到主机这种。
1.3 各种shell的区别文件非交互+登陆式交互+登陆式交互+非登陆式非交互+非登陆式/etc/profile加载加载
/etc/bashrc加载加载
~/.bash_profile加载加载
~/.bashrc加载加载加载
BASH_ENV加载
2. man bash得到以下参数1
2-i If the -i option is present, the shell is interactive.
-l Make bash act as if