Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash date命令和使用引号时的额外空间_Bash_Date - Fatal编程技术网

Bash date命令和使用引号时的额外空间

Bash date命令和使用引号时的额外空间,bash,date,Bash,Date,为什么将date命令置于引号中时会生成额外的空格 echo Started at $(date) # "Started at Thu Dec 6 07:26:59 PST 2018" echo "Started at $(date)" # "Started at Thu Dec 6 07:26:59 PST 2018" 上面的两个命令应该产生相同的结果,但它们不是。在6的前面有一个额外的空间。如何使其保持一致,或者是否有方法使其保持一致?让我们只运行date命令,看看它提供了什么输出

为什么将date命令置于引号中时会生成额外的空格

echo Started at $(date)    # "Started at Thu Dec 6 07:26:59 PST 2018"
echo "Started at $(date)"  # "Started at Thu Dec  6 07:26:59 PST 2018"

上面的两个命令应该产生相同的结果,但它们不是。在6的前面有一个额外的空间。如何使其保持一致,或者是否有方法使其保持一致?

让我们只运行
date
命令,看看它提供了什么输出

date
Thu Dec  6 10:37:15 EST 2018
由于
将原始空间保存在其中,因此当您按如下方式运行第二个命令时,它将保存该空间

echo "Started at $(date)"
Started at Thu Dec  6 10:36:46 EST 2018

因此,我们实际上应该说它没有添加额外的空间,而是在输出中保留原始空间。

让我们只运行
date
命令,看看它提供了什么输出

date
Thu Dec  6 10:37:15 EST 2018
由于
将原始空间保存在其中,因此当您按如下方式运行第二个命令时,它将保存该空间

echo "Started at $(date)"
Started at Thu Dec  6 10:36:46 EST 2018

因此,我们实际上应该说,它没有添加额外的空间,而是在输出中保留原始空间。

确切地说:
echo
打印它的参数,每个参数之间用一个空格分隔,因为第一次调用是不带引号的,
$(日期)
扩展到它所包含的所有单词,双空格由于单词拆分而被压缩。确切地说:
echo
打印它的参数,每个参数用一个空格分隔,并且由于第一次调用是不带引号的,
$(date)
扩展到它所包含的所有单词,双空格由于单词拆分而被压缩。这是一个很好的阅读来解释你所看到的。谢谢你的链接。这是一个很好的阅读来解释你所看到的。谢谢你的链接。