我是 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)。