从列表/variables中删除一个项目 – Bash

如果我把一个variables作为一个文件列表来调用:

files = $(ls * .txt)

然后我想删除列表中的第一个项目(文件)

谢谢

克莱夫

你不应该分析ls的输出。 请参阅http://mywiki.wooledge.org/ParsingLs

幸运的是,在你的情况下,你实际上并没有使用任何ls的功能。 Bash已经处理了*.txt部分,所以ls是相当多余的。

你可以写这个:

 # Set files to an array of the files with names ending in '*.txt': files=(*.txt) # Set files to an array consisting of ${files[1]}, ${files[2]}, ...: files=("${files[@]:1}") 

(参见Bash参考手册 §3.5.3“外壳参数扩展” ;搜索${ parameter : offset } 。)