0

请解释为什么"$"在这个命令中需要。OC FreeBSD,/bin/sh

rm $(ls|grep '.*\.gz')

没有"$"这个命令是行不通的。

4

1 回答 1

1

这是关于$(). 来自Bash 参考手册

POSIX $() 形式的命令替换已实现(请参阅命令替换),并且优先于 Bourne shell 的 ``(也为向后兼容而实现)。

所以rm $(ls|grep '.*\.gz')表达式rmls|grep '.*\.gz'.

例子

$ date "+%F %T %Z"
2013-10-24 10:49:23 CEST
$ d=$(date "+%F %T %Z")
$ echo "$d"
2013-10-24 10:49:26 CEST
于 2013-10-24T08:48:26.017 回答