![bash - 括号扩展 - 仅扩展一个匹配项](https://linux22.com/image/1186429/bash%20-%20%E6%8B%AC%E5%8F%B7%E6%89%A9%E5%B1%95%20-%20%E4%BB%85%E6%89%A9%E5%B1%95%E4%B8%80%E4%B8%AA%E5%8C%B9%E9%85%8D%E9%A1%B9.png)
我在特定目录中有以下 4 个文件夹:
example.10 example.42 example.7 example.9
从 shell 终端,我希望这个括号扩展
echo example.{1..9}*
仅返回一个结果(无论哪一个),而不是全部结果。
我如何通过括号扩展来获得这个?
答案1
将扩展保存为数组并打印一个数组项:
shopt -s nullglob
dirs=(example.{1..9}*)
echo "${dirs[0]}"
或使用set
(注意:如果位置参数存在,这将覆盖它们):
shopt -s nullglob
set -- example.{1..9}*
echo "$1"
或者使用for
-loop 立即中断:
shopt -s nullglob
for d in example.{1..9}*; do echo "$d"; break; done