我了解交互式 shell 和非交互式 shell 之间的基本区别。但是,登录 shell 与非登录 shell 的确切区别是什么?
你能举例说明非登录交互式shell 的使用吗?
我有csh我的默认外壳,如echo $SHELL. 我想切换到bash我的默认 shell。我尝试了以下方法无济于事:
随着chsh我得到:
chsh: can only change local entries; use ypchsh instead.
Run Code Online (Sandbox Code Playgroud)随着ypchsh我得到:
ypchsh: yppasswdd not running on NIS master host ("dcsun2").
Run Code Online (Sandbox Code Playgroud)我只有.chsrc在我的主目录中,我.profile在/etc. 如何将我的默认 shell 更改为bash?
我希望能够检查fishshell 是否在登录、交互或批处理模式下运行,这个问题只讨论bash.
我想实现一个zsh脚本,其行为取决于是否直接在 shell 的 CLI 上调用。
我一开始以为脚本可以通过查找 的i值来做到这一点$-,但我错了。
事实上,当我从命令行运行下面的脚本时
#!/bin/zsh
printf -- '%s\n' "$-"
Run Code Online (Sandbox Code Playgroud)
...我得到的输出不包括i1。
我的 shell 脚本还有其他方法可以找出这些信息吗?
注意:zsh虽然我现在正在写剧本,但我也想知道bash剧本的答案是什么。如果答案取决于OS,我主要对 Linux 和 Darwin 感兴趣。
1569X如果有人想知道的话,脚本的输出是。