我正在尝试编写一个bash脚本来计算数组中不以字符'-'开头的所有元素(它是计算参数而不是words
数组中的选项的shell完成脚本的一部分)。与我正在尝试编写的 Python 等效的是:
len([word for word in words if not word.startswith("-")])
我编写了一些运行良好的代码,但由于我对 bash 脚本非常陌生,我确信可以进行一些改进,我想知道我是否错过了一些不涉及太多的更好的实现方法代码行,也许看起来更像 Python 实现?
这就是我所拥有的:
words=('a' 'b' '-c' 'd' '--foo' 'e')
argcount=0
for word in ${words[@]}
do
if [[ $word =~ ^[^-].*$ ]] ; then
((argcount++))
fi
done
echo $argcount
欢迎任何改进。