在bash中,如何打印列表的前n个元素?

Fra*_*ank 10 syntax bash

bash,如何打印n列表的第一个元素?

例如,此列表中的前10个文件:

FILES=$(ls)
Run Code Online (Sandbox Code Playgroud)

更新:我忘了说我想在一行上打印元素,就像打印整个列表一样echo $FILES.

Aym*_*ieh 25

FILES=(*)
echo "${FILES[@]:0:10}"
Run Code Online (Sandbox Code Playgroud)

即使文件名中有空格也应该正常工作.

FILES=$(ls)创建一个字符串变量.FILES=(*)创建一个数组.有关在bash中使用数组的更多示例,请参阅此页面.(感谢lhunath)


小智 7

为什么不只是这样打印前 50 个文件:

ls -1 | head -50
Run Code Online (Sandbox Code Playgroud)


小智 5

FILE="$(ls | head -1)"
Run Code Online (Sandbox Code Playgroud)

我尝试时也正确处理了文件名中的空格.