离职提了,一个字,爽!!!
评论区抽一杯奶茶。
通过SSH直接执行远程命令和脚本,会使用bash的non-interactive+non-login shell模式,它会创建一个shell ,执行完脚本之后便退出,不再需要与用户交互。
no-login shell ,顾名思义就是不是在登录Linux系统时启动的(比如你在命令行提示符上输入bash启动)。它不会去执行/etc/profile文件,而会去用户的HOME目录检查. bashrc并加载。
系统执行Shell脚本的时候,就是属于这种non-interactive shell。bash通过BASH_ ENV环境变量来记录要加载的文件,默认情况下这个环境变量并没有设置。如果有指定文件,那么Shell会先去加载这个文件里面的内容,然后再开始执行Shell脚本。
由此可见,如果要解决SSH远程执行命令时找不到自定义环境变量的问题,那么可以在登录用户的HOME目录的.bashrc中添加需要的环境变量。
no-login shell ,顾名思义就是不是在登录Linux系统时启动的(比如你在命令行提示符上输入bash启动)。它不会去执行/etc/profile文件,而会去用户的HOME目录检查. bashrc并加载。
系统执行Shell脚本的时候,就是属于这种non-interactive shell。bash通过BASH_ ENV环境变量来记录要加载的文件,默认情况下这个环境变量并没有设置。如果有指定文件,那么Shell会先去加载这个文件里面的内容,然后再开始执行Shell脚本。
由此可见,如果要解决SSH远程执行命令时找不到自定义环境变量的问题,那么可以在登录用户的HOME目录的.bashrc中添加需要的环境变量。
展开
评论
8