什么是“ double sh”通话?

时间:2019-04-09 08:56:15

标签: bash

您能解释什么(如我所说)“双sh调用”,它们如何工作以及这种构造的优点吗?

EDIT1:也许有一个例子可以帮助您了解我在说什么。

$ set -- --no-resume-playback https://www.facebook.com/TBN/videos/1580372468665943/
$ sh -c 'echo $*'
$
$ sh -c 'echo $*' sh "$*"
--no-resume-playback https://www.facebook.com/TBN/videos/1580372468665943/

我在男人身上找不到任何例子:

$ man bash | col -b | egrep "sh -c [\"']"
$

N.B .:如果我的问题的标题不明确,请帮助我更改它,因为我不知道如何调用此类shell调用。

1 个答案:

答案 0 :(得分:2)

man bash描述了-c及其参数:

  

如果存在-c选项,则从第一个非选项参数 command_string 中读取命令。如果 command_string 之后有参数,则将它们分配给位置参数,从$0开始。

在这种情况下, command_string echo $*,并且位置参数是以这种方式设置的:

$0 = sh
$1 = "$*" = '--no-resume-playback https://www.facebook.com/TBN/videos/1580372468665943/'