首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >本地a和本地a=之间的差异

本地a和本地a=之间的差异
EN

Stack Overflow用户
提问于 2010-09-17 17:19:36
回答 1查看 244关注 0票数 2

来自/lib/lsb/init-functions (可能这个文件是特定于debian的,但对这个问题并不重要):

代码语言:javascript
复制
pidofproc () {
    local pidfile line i pids= status specified pid
    pidfile=
    specified=

你说的是什么

代码语言:javascript
复制
local a

代码语言:javascript
复制
local a=
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-09-17 18:22:56

这两种类型都会从作用域中删除变量的任何外部版本。=为该变量分配一个空值,而纯形式则不设置该变量。

例如:

代码语言:javascript
复制
A=30
B=30

function foo()
{
    local A B=
    echo A - $A
    echo B - $B
    echo A :- ${A:-minusA}
    echo B :- ${B:-minusB}
    echo A :+ ${A:+plusA}
    echo B :+ ${B:+plusB}
    echo A hash ${#A}
    echo B hash ${#B}


    echo A - ${A-minusA}
    echo B - ${B-minusB}
    echo A + ${A+plusA}
    echo B + ${B+plusB}


    ## Modifies variable
    echo A := ${A:=eqA}
    echo B := ${B:=eqB}
    echo A - $A
    echo B - $B
}

foo

输出:

代码语言:javascript
复制
A -
B -
A :- minusA
B :- minusB
A :+
B :+
A hash 0
B hash 0
A - minusA
B -
A +
B + plusB
A := eqA
B := eqB
A - eqA
B - eqB

您可以看到该部分:

代码语言:javascript
复制
    echo A - ${A-minusA}
    echo B - ${B-minusB}
    echo A + ${A+plusA}
    echo B + ${B+plusB}

对于A和B是不同的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3734051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档