在 Bash 中,我将一行中的字段读入数组。让我强调一下性能是一个问题,所以我买不起任何产生子进程的东西。
为了使代码更具可读性,我希望将字段转换为变量:$width
比${array[0]}
. 我必须手动设置每个变量,就像这样,这是很多重复:
while read line; do
array=($line)
width=${array[0]}
height=${array[1]}
size=${array[2]}
date=${array[3]}
time=${array[4]}
# use $width, $height, etc. in script
done < file
是否有任何紧凑的方法可以做到这一点,比如list
PHP 中的指令?
list($width, $height, $size, $date, $time) = $array;
是的:
这将从标准输入读取数据并将数据拆分为空格(空格或制表符)。最后一个变量将获得“剩余”的任何数据(如果字段多于读取的变量)。这不是读入变量
line
。我使用了变量名
thedate
,thetime
而不是date
和time
那些是实用程序的名称。要仅在选项卡上拆分行,请设置
IFS
为选项卡read
:也可以看看: