迴聲{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)。

相關內容