【发布时间】:2017-04-16 12:39:21
【问题描述】:
由于某些原因,在下面的代码中 for 循环将 args 视为数组, wc -l 可以正确计算行数,但我无法让 $(#args[@]) 产生正确的计数
function doSomthing() {
local i args a
args=$1;
a=("1" "2" "3" "4");
i=0
echo wc =`wc -l <<< "$args"`;
for arg in $args; do
((i++))
echo "$i"
done;
echo i = $i
echo a = ${#a[@]}
echo args = ${#args[@]}
echo $args
}
这个函数的输出是
$> doSomthing $'1\n2\n3\n4'
wc = 4
1
2
3
4
i = 4
a = 4
args = 1
1 2 3 4
【问题讨论】:
标签: arrays bash shell count ksh