gpt4 book ai didi

shell - #!/bin/sh 后破折号 '-' -

转载 作者:太空宇宙 更新时间:2023-11-03 17:14:33 25 4
gpt4 key购买 nike

我一直在 CentOS 7 上编写一些脚本,有时我会看到:

#!/bin/sh -

在第一行。查看 sh 的手册页,我在 Special Parameters

下看到以下内容
   -      Expands to the current option flags as  specified  upon  invocation,
by the set builtin command, or those set by the shell
itself (such as the -i option).

这到底是什么意思?我什么时候需要使用这个特殊的参数选项??

最佳答案

您正在阅读的文档与您正在查看的命令行无关:它指的是特殊变量。在这种情况下,如果您运行 echo $-您将看到“调用时指定的当前选项标志...”。

如果你看一下OPTIONS bash 的一部分手册页,您会发现:

--       A -- signals the end of options and disables  further  option  processing.
Any arguments after the -- are treated as filenames and arguments. An
argument of - is equivalent to --.

换句话说,参数 -只是意味着“在这个论点之后没有其他选择”。

您经常看到这种用法用于您希望避免以 - 开头的文件名的情况。意外地被视为命令选项:例如,如果有一个名为 -R 的文件在当前目录中,运行 ls *实际上将表现为 ls -R并生成递归列表,同时 ls -- *不会对待 -R特意归档。

#! 中使用的单破折号线路是作为一种安全预防措施。您可以阅读更多相关信息 here .

关于shell - #!/bin/sh 后破折号 '-' -,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57116144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com