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