在普通 zsh 中,默认tree
设置类似于--color=auto
。但是,当我使用 Oh-My-Zsh 时,tree
不显示颜色。由于tree
没有--color=auto
选项,如何将设置覆盖回自动设置?
例如,如果我有example.sh
以下内容
. non-existing.sh
echo 'continues!'
Run Code Online (Sandbox Code Playgroud)
然后我在交互式会话中获取脚本. ./example.sh
,如果我看到“继续!” 在终端?该标准的指定
如果没有找到可读文件,非交互式 shell 将中止;交互式 shell 应将诊断消息写入标准错误,但这种情况不应被视为语法错误。
我知道如果. non-existing.sh
会话应该继续,但我不确定它如何应用于嵌套源。在 Bash 中,它在打印错误消息后继续运行(即使使用set -o posix
);在 Dash 中,它中止当前脚本 ( example.sh
)。我想知道这是 Bash 不符合 POSIX,还是 POSIX 中未指定的(实现定义的行为)?
在 Bash(4 或更高版本)中,如果我有一个关联数组dict
,我可以设置它的值,dict[apple count]=1
并且我可以使用${dict[apple count]}
. Zsh 是否允许键名中有空格?dict[apple count]=1
在 Zsh 中不起作用,所以我猜 Zsh 对此有不同的语法。dict["apple count"]=1
不做我想做的事;它不是apple count
用作键,而是使用"apple count"
引号作为键的一部分。
我最近从终端提示登录(getty?)切换到 GNOME 显示管理器。这似乎是GDM总是读.profile
,无论登录shell(岩组在我的情况)的用户设置。这是为什么?我认为它在他们的源代码中是硬编码的,但我找不到。他们为什么这样做?该软件是否依赖于 Bourne shell 的某些功能?
这是不是很好,如果我想同时使用GDM和盖蒂(作为后备),因为我那么就需要让我.profile
和.zprofile
同步。我不那么自信采购.profile
的.zprofile
(我遇到过一些兼容性问题,当我试图源.bashrc
中.zshrc
)。我认为 Bash/bin/sh
在 POSIX 模式下被称为行为,但我不确定它是否避免了所有陷阱。
以防万一,我使用的是最新的 Arch Linux,使用 Wayland 运行 GNOME(所以不应该Xsession
涉及任何脚本)。