重击:let语句vs赋值 [英] Bash: let statement vs assignment

查看:71
本文介绍了重击:let语句vs赋值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

解决方案

let(( ))完全一样,它用于算术表达式. let(( ))之间几乎没有区别./p>

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

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

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

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

What is the difference between assigning to a variable like var=foo and using let like let var=foo? Or cases like var=${var}bar and let var+=bar? What are the advantages and disadvantages of each approach?

解决方案

let does exactly what (( )) do, it is for arithmetic expressions. There is almost no difference between let and (( )).

Your examples are invalid. var=${var}bar is going to add word bar to the var variable (which is a string operation), let var+=bar is not going to work, because it is not an arithmetic expression:

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

Actually, it IS an arithmetic expression, if only variable bar was set, otherwise bar is treated as zero.

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

这篇关于重击:let语句vs赋值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆