bash - bash 中 $x, $[x], ${x} 的区别

标签 bash shell

<分区>

当我测试下面的脚本时:

#!/bin/bash

num1=100
num2=100


if test $num1 -eq $num2  # there is no difference using $num1 ,$[num1] and ${num1}
then 
    echo "equal"    
else
    echo "not equal"    
fi  

我知道如果我们回显变量,我们应该使用 {} 来定义外围,但是 [] 怎么样? []{} 有什么区别吗?

最佳答案

$x${x} 具有相同的语义,从不需要大括号,但是当您需要将变量与字符串分开时它们可能很方便跟随它:

var=program
echo "${var}s"  # $vars wouldn't work

$[x]$((x)) 的旧写法,即算术表达式的结果。

x=3
y=2
echo $(( x + y ))  # 5

有关详细信息,请参阅 Why should I use $[ EXPR ] instead of $(( EXPR ))? .

关于bash - bash 中 $x, $[x], ${x} 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48165813/

相关文章:

bash - 从终端直接执行 docker 可以正常工作,但从 .sh 脚本内部执行时不行?

linux - 在单独的文件中记录所有出现的特定模式

linux - 如何在 bash 打印字符串中插入 ($x-$y)

bash - 如何在 bash 中使用 nslookup 来验证 DNS 是否配置正确?

linux - 如何提取多个值并在文件中打印正确的输出?

python - wx.TextCtrl(或底层 GTK+)的多线程问题

linux - 如何在 LINUX 中实现 AJAX(交互式)搜索以查找文件?

java - JSch ChannelExec OutputStream 不显示程序输出。但是它适用于 shell 脚本

linux - Bash:如何在所有子目录中搜索名为 output.log 的所有文件中的特定短语

linux - 回显到文件时错误重定向到输出流失败。为什么?