哪为啥echo "$(today)" echo "${todat}"这两种没有输出啊
时间: 2023-07-19 16:42:43 浏览: 56
这两个命令没有输出是因为它们都没有正确地引用变量。
在`echo "$(today)"`命令中,`"$(...)"`是命令替换符号,它会执行其中的命令并将结果作为一个字符串输出。但是`$(today)`并不是一个正确的命令,因为它没有引用变量`today`,正确的写法应该是`echo "$(today)"`改为`echo "$today"`。
在`echo "${todat}"`命令中,`${...}`是变量替换符号,它会将其中的变量名替换成变量值。但是在脚本中没有定义`todat`变量,所以它的值为空,相当于`echo ""`,即没有输出。
正确的写法应该是:
```
today=$(date +%Y%m%d)
echo "$today"
```
这样就能输出当前日期了。
相关问题
分别有什么区别echo "$(today)" echo "${todat}" echo "$today"举出具体的例子来证明
这三个命令的区别如下:
1. `echo "$(today)"`:这个命令的意思是将一个字符串"$(today)"输出到终端,因为这个字符串没有定义,所以实际上不会输出任何内容。
2. `echo "${todat}"`:这个命令使用了变量替换,它会将变量名"todat"替换为变量的值并输出到终端。由于在脚本中没有定义该变量,因此它的值为空,所以实际上不会输出任何内容。
3. `echo "$today"`:这个命令会输出变量$today的值到终端。如果在脚本中已经定义了$today变量并且赋值为当前日期,例如`today=$(date +%Y%m%d)`,那么执行这个命令会输出当前日期,例如`20211013`。
举例来说,假设在脚本中执行了以下命令:
```
today=$(date +%Y%m%d)
echo "$(today)"
echo "${todat}"
echo "$today"
```
那么输出结果将是:
```
$(today)
20211013
```
可以看到,第一个和第二个命令没有输出任何内容,而第三个命令输出了当前日期。