Linux 什么是/bin/sh-c?

Linux 什么是/bin/sh-c?,linux,sh,Linux,Sh,/bin/sh-c是什么意思?-c做什么?来自bash的手册页: -c字符串 如果存在-c选项,则从字符串读取命令。如果字符串后面有参数,则会将它们指定给位置参数,从$0开始 示例: $ bash -c ls 将启动bash并执行命令ls /bin/sh通常是shell的符号链接。使用-c(命令)返回到第一个shell,而不是打开一个新的shell。 它非常类似于:sudo su-l-c'echo“运行命令并返回” 例如: #sudo su-l knoppix-c'echo“以${USER}的

/bin/sh-c
是什么意思?
-c
做什么?

来自bash的手册页:

-c字符串

如果存在
-c
选项,则从
字符串
读取命令。如果字符串后面有参数,则会将它们指定给位置参数,从
$0
开始

示例:

$ bash -c ls
将启动bash并执行命令
ls

/bin/sh
通常是shell的符号链接。

使用-c(命令)返回到第一个shell,而不是打开一个新的shell。
它非常类似于:
sudo su-l-c'echo“运行命令并返回”

例如:

#sudo su-l knoppix-c'echo“以${USER}的身份运行命令并返回”'
以knoppix的形式运行命令并返回
#

这与不使用
-c
有什么不同?您可以将脚本作为参数传递,
bash myScript
,但它将打开
myScript
并解释命令。这与bash-csomecommand不同。比较如果您执行
bash-ls
bash-c-ls
例如/bin/sh-c grep“cpu内核”/proc/cpuinfo | uniq | sed-e的/[^0-9]时会发生什么情况。上述命令不会给出所需的结果。为什么会这样?而/bin/sh-c ls | grep c工作正常。我没有这种奇怪的行为。如果你也能解释一下就好了,我明白了。它需要格式化为字符串/bin/sh-c'grep“$0”/proc/cpuinfo | uniq | sed-e“$1”'“cpu cores”的//[^0-9]*//g'工作得很好。好吧,你不必用
/bin/sh
给出密码。