带外壳脚本的字符串长度

卡帕帕

我正在使用GRASS,但我对数字的一维向量有疑问。现在,我想打印该矢量的长度,因为我的输出看起来像这样:

(1,2,3,4,5,6,7,8,9 
什么时候应该看起来像这样:
(1,2,3,4,5,6,7,8,9)
即,我不需要最后一个分隔符。有没有办法做到这一点?

我需要符合POSIX的解决方案;没有bashisms。

我的代码如下所示:

for i in $CATS
do 
 step=$step"$i,"
 echo $step
 g.region --overwrite vector="region_uspo_$i," save=regions_uspo
 regions_uspos="region_$i,"
 echo $regions_uspos
done
吉勒斯“别再邪恶了”

构建完字符串后,请删除最后一个逗号。

for …
done
step=${step%,}
regions_uspos=${regions_uspos%,}

${VARIABLE%PATTERM}扩展到去除了VARIABLE最短后缀匹配的值PATTERN}每个POSIX Shell都支持此构造。所有BusyBox配置也都支持它。

如果您需要中间的字符串而没有尾部逗号,则可以在循环内剥离尾部逗号。或者,通过在附加元素之前添加逗号来构建不带尾部逗号的字符串。为了避免出现逗号,请检测循环中的第一次迭代。

first=1
for … do
  if [ -n "$first" ]; then
    first=
  else
    step="$step,"
    regions_uspos="$regions_uspos,"
  fi
  step="$step$i"
done

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章