我正在循环某个命令的目录; 但是,我不知道如何容纳空间
#!/bin/bash
image=(`ls *.bmp *.jpeg *.jpg | sort`)
data=(`ls *.dat | sort`)
for ((i=0; i < ${#image[@]}; i++))
do
echo ${image[$i]} ${data[$i]}
done
Run Code Online (Sandbox Code Playgroud)
我运行了这个脚本并返回了
OIS032_OS.bmp Disc
OIS034_OS.bmp Cube
OIS035_OD.bmp 200x200_9-30-2010_OD
OIS035_OS.bmp _ILM_RNFLOb.dat
OIS036_OD.bmp OIS007_Optic
OIS036_OS.bmp Disc
Run Code Online (Sandbox Code Playgroud)
我希望程序返回这一行
OIS016_OD.bmp OIS016_Optic Disc Cube 200x200_OS _ILM_RNFLOb.dat
Run Code Online (Sandbox Code Playgroud)
如何修复bash数组以存储我需要的内容
data=(`ls *.dat | sort`)
Run Code Online (Sandbox Code Playgroud)
不要打电话ls; 只需使用模式匹配来填充数组:
shopt -s extglob # We'll use a more complicated glob to avoid needing to sort
image=( *.@(bmp|jpeg|jpg) )
data=( *.dat )
for ((i=0; i < ${#image[@]}; i++))
do
echo ${image[$i]} ${data[$i]}
done
Run Code Online (Sandbox Code Playgroud)