首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >最初在我的计算机上的Invoked之后调用的Shell是登录还是非登录Shell?

最初在我的计算机上的Invoked之后调用的Shell是登录还是非登录Shell?
EN

Unix & Linux用户
提问于 2018-04-02 03:00:33
回答 1查看 90关注 0票数 -2

我读过多篇文章引用登录shell和非登录shell,不过,我还是很困惑.登录Shell与非登录Shell?- Unix & Linux堆栈交换的区别 :登录shell还是非登录shell?

简单地说,打开电源后,我从自己的计算机启动的shell,不是登录shell还是非登录shell?

代码语言:javascript
复制
    $ echo $SHELL
    /bin/bash
    $ echo $0
    -bash

另外,请您帮助确定从程序中调用的shell是否为登录shell?

代码语言:javascript
复制
    import subprocess
    subprocess.run('ls -l', shell=True)
EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2018-04-02 04:09:02

正如在这个答案中所指出的:

prompt> echo $0 -bash # "-“是第一个字符。因此,这是一个登录shell。

因此,您的第一个示例显示了一个登录shell。

正如在同一答复中所指出的,

信息可以在man bash (搜索调用)中找到。这里有一个摘录:登录shell是参数0的第一个字符是-,或者是以--login选项开始的。

来自Python文档

..。Popen相当于: Popen(['/bin/sh','-c',args,args,.])

因为给出的唯一选项是-c,所以它不是登录shell。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/434956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档