回声{Z..A};出{Z..A};为什么?

回声{Z..A};出{Z..A};为什么?

我是 Ubuntu 新用户。我正在阅读《Linux命令行:完整介绍》这本书并练习代码。这很有趣,但我在第 8 章遇到了麻烦:

➜  ~ echo {1..10}
1 2 3 4 5 6 7 8 9 10
➜  ~ echo {z..a}
{z..a}
➜  ~ echo {Z..A}
{Z..A}
➜  ~ echo {a..z}
{a..z}
➜  ~ 

我无法获取一系列字母。为什么?我如何解决它?我的 shell 是 oh-my-zsh。

答案1

这是一个克什(和巴什) 功能并且可能不在你的外壳,例如,短跑(Debian/Ubuntu 中使用的默认 shell)。

要查看差异,请尝试

bash -c "echo {a..z}"
dash -c "echo {a..z}"

Debian 的默认值/bin/sh指向dash.但如果您碰巧在 bash shell 中运行,您将看到序列按您的预期展开。脚本开头#!/bin/sh将使用dash.

在我的 Debian 7 上,zsh也没有扩展序列。 (我检查了 ksh、bash、dash 和 zsh)。

相关内容