将文件名读入数组
我想运行ls来获取文件列表,然后将结果读入一个数组,其中每个元素对应一个文件名。 这可能吗? 
 不要使用ls ,它不是为此目的而devise的。 使用通配符。 
 shopt -s nullglob array=(*) array2=(file*) array3=(dir/*) 
 如果没有匹配, nullglob选项将导致数组为空。 
以下将在当前目录中创build一个带有ls输出的数组arr:
 arr=( $(ls) ) 
 比ls更好更安全,你可以使用echo * : 
 arr=( * ) echo ${#arr[@]} # will echo number of elements in array echo "${arr[@]}" # will dump all elements of the array 
其实,我不是要走的路。 尝试这个:
 declare -a FILELIST for f in *; do #FILELIST[length_of_FILELIST + 1]=filename FILELIST[${#FILELIST[@]}+1]=$(echo "$f"); done 
从数组中检索名字:
 echo ${FILELIST[x] 
-要么-
 echo ${FILELIST[@]:x:y} 
其中x和y是第一个得到的元素,之后有多less个元素。
有关basharrays的很好的教程,请参阅: http : //www.thegeekstuff.com/2010/06/bash-array-tutorial/
尝试这个,
 PATH="" # could set to any absolute path declare -a ARRAY=(${PATH}/*) 
我假设你稍后会从列表中抽出不需要的东西。