【问题标题】:Why doesn't ${#$2} work?为什么 ${#$2} 不起作用?
【发布时间】:2015-05-21 04:25:07
【问题描述】:

我在一个小的 bash 函数中有这一行:

if [ ${#$2} -lt 25 ]; then

但它在${#$2} 上给了我Bad substitution。我在那里做错了什么?我正在尝试获取第二个命令行参数的字符长度。我该怎么做?

【问题讨论】:

    标签: bash sh


    【解决方案1】:

    参数名称是2,而不是$2

    if [ ${#2} -lt 25 ]; then
    

    【讨论】:

    • 你说得对,这行得通,但我不明白为什么。认为命令行参数被 $1$2 等引用。
    • 正确,但就像变量x$x引用一样,2$2引用的特殊参数也是如此。使用${#2},您已经有了美元符号;您只是将 # 运算符添加到扩展中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-16
    • 1970-01-01
    • 2021-03-23
    • 2019-09-26
    相关资源
    最近更新 更多