当前位置: 首页 > 面试题库 >

Bash:let语句vs赋值

沃博裕
2023-03-14
问题内容

分配给变量like var=foo和使用let like有let var=foo什么区别?还是像var=${var}bar和这样的案例let var+=bar?每种方法的优点和缺点是什么?


问题答案:

let完全是(( ))做什么的,它用于算术表达式。目前几乎没有差别之间let(( ))

您的示例无效。var=${var}bar要将单词添加barvar变量(这是一个字符串操作),let var+=bar将不起作用,因为它不是算术表达式:

$ var='5'; let var+=bar; echo "$var"
5

实际上,如果仅bar设置了变量,则它是一个算术表达式,否则bar将被视为零。

$ var='5'; bar=2; let var+=bar; echo "$var"
7


 类似资料:
  • 赋值语句在 Lua 被强化了,它可以同时给多个变量赋值。 例如: a,b,c,d=1,2,3,4 甚至是: a,b=b,a --多么方便的交换变量功能啊 在默认情况下,变量总是认为是全局的。假如你要定义局部变量,则在第一次赋值的时候,需要用 local 说明。比如: local a,b,c = 1,2,3 -- a,b,c 都是局部变量

  • 问题内容: 假设有人来找您,并说我们将通过用equals替换equals来减少我们编写的SQL数量。既可以用于单个标量值,也可以用于数字列表。 或者 这些语句等于优化器产生的内容吗? 从表面上看,这看起来确实很简单,但是由于两个原因,它导致了简化:1.不需要复制大型SQL块;并且2.我们不会过度使用动态SQL。 这是一个人为的示例,但请考虑以下内容。 …对于不止一种情况,同样如此 (这甚至不是一个

  • 问题内容: 是否可以通过if条件执行多个分配,如以下代码? 问题答案: 否。根据规范,在if语句的开头仅允许一个“简单语句” 。 该建议的方法是这可能会返回一个错误,所以我想你想是多重考验:

  • 问题内容: (不用担心,这不是关于拆开元组的另一个问题。) 在python中,类似这样的语句将变量foo,bar和baz分配给5。它可以从左到右分配这些变量,这可以通过诸如nastier的例子来证明 但是python语言参考指出赋值语句具有以下形式 并在分配时首先评估,然后进行分配。 那么,如果不是,该行如何有效?如何解析和评估一行上的这些多个分配?我阅读的语言参考书是否错误? 问题答案: 所有功

  • 这段代码给出的答案不是很直观: 0 1 我明白为什么会发生这种情况-赋值的左侧返回对底层值的引用,同时创建上述值,然后才使用新计算的对右侧进行评估映射。 这种行为在C标准中是否有表述?还是求值顺序没有定义? 使用g 5.2.1获得结果。

  • 我在Java中所知的程度可以通过两种方式报告错误:返回值和异常。例如,下面的代码: 另一个观察结果是:如果取消对最后一条“return result”语句的注释,则会得到一条错误消息: 变量结果可能未初始化 ;如果对最后一条“return result”进行注释,则会得到一条错误消息: 缺少return语句 但是我已经在try子句中包含了return语句。