$()
Linux Shell 命令中有什么?
例如:
chmod 777 $(pwd)
答案1
答案2
在 POSIX 或类 POSIX shell(ksh
、bash
、ash
、zsh
、yash
...)中,它就像:执行``
里面的命令并替换为它的标准输出。除非在双引号内,$()
否则将完成分词和文件名生成。$()
因此
chmod 777 $(pwd)
应替换为:
chmod 777 "$(pwd)"
以避免在当前工作目录路径上进行分词和文件名生成。
或者甚至更好(除了在某些 shell 下,例如 zsh,以防目录已重命名):
chmod 777 "$PWD"
since$PWD
是一个特殊变量,它保存 POSIX shell 中当前工作目录的路径。
或者甚至更好:
chmod 777 .
由于.
当前目录中的条目是到该目录本身的硬链接。
答案3
这$()
主要用于在其他命令中执行命令。
chmod 777 $(pwd)
pwd
命令给出当前工作目录。因此,当整个过程执行时, pwd 的输出将替换其位置并作为 的参数chmod
,结果是您当前的所有工作目录都获得了777
我认为永远不应该在生产环境中使用的权限;)。