bash - 括号扩展 - 仅扩展一个匹配项

bash - 括号扩展 - 仅扩展一个匹配项

我在特定目录中有以下 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

相关内容