【发布时间】:2017-09-20 07:52:35
【问题描述】:
我想找出传递给脚本的所有参数的长度。
如果我这样做:echo ${#1} 我会看到我的第一个参数的长度,如果我这样做:echo $* 我会看到我的所有参数都用空格分隔。那么,为什么不这样做:echo ${#*}?相反,这会显示传递的参数数量,就好像它是 echo $#。
有没有办法回显总长度,而无需将 $* 的值写入新变量 ($allargs=$*),然后检查新变量 (echo ${#allargs}) 的长度?
【问题讨论】:
-
@VadimLanda,我不想知道传递的参数数量。我想知道所有参数组合的总长度。对我来说,通过多少并不重要。
-
是否有无法保存到变量的原因?
-
@123,没有特别的原因。只是我在一篇文章中读到有可能,但我无法让它发挥作用。
-
expr length "$*",但expr没有内置 bash。
标签: bash variables arguments parameter-passing string-length