zsh
当我从bash
Windows启动Windows时,我刚刚找到了一种启动方法。
https://www.howtogeek.com/258518/how-to-use-zsh-or-another-shell-in-windows-10/。
建议您在的末尾添加以下代码.bashrc
。
# Launch Zsh
if [ -t 1 ]; then
exec zsh
fi
什么[ -t 1 ]
意思
这是真的吗?
然后,我可以这样做吗?
exec zsh
[]
是test
命令的快捷方式。
根据man test
:
-t FD
如果FD是与终端关联的文件描述符,则为true。
因此,如果将bash作为交互式外壳程序运行(终端-参见该线程以了解术语说明),则bash将被zsh取代。
有关.bash *文件的更多信息:
当bash作为交互式登录shell或具有--login选项的非交互式shell被调用时,它首先从文件/ etc / profile中读取并执行命令(如果该文件存在)。读取该文件后,它将按该顺序查找〜/ .bash_profile,〜/ .bash_login和〜/ .profile,并从存在且可读的第一个命令中读取并执行命令。启动外壳程序时,可以使用--noprofile选项禁止此行为。
当退出登录shell时,bash从〜/ .bash_logout和/etc/bash.bash_logout文件(如果存在)中读取并执行命令。
启动不是登录shell的交互式shell时,bash会从〜/ .bashrc读取并执行命令(如果该文件存在)。使用--norc选项可以禁止这种情况。--rcfile file选项将强制bash从文件而不是〜/ .bashrc中读取并执行命令。
StéphaneChazelas评论:
请注意,shell可以在stdout不成为终端的情况下是交互式的,并且Shell可以与stdout上的终端不交互(例如,任何时候在终端中运行脚本而无需重定向/输出其输出),并且bash
可以.bashrc
甚至在非交互时也可以读取(例如,主机上用户的登录shell在ssh host cmd
哪里)。是测试外壳是否交互式的正确方法。bash
bash --login -c 'some code'
case $- in *i*)...
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句