您能解释什么(如我所说)“双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调用。
答案 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/'