/bin/sh sh -c cmd和/bin/sh cmd的区别
时间: 2023-10-06 22:11:26 浏览: 106
Android 设置/system/bin/cmd的权限遇到的问题
"/bin/sh sh -c cmd" 和 "/bin/sh cmd" 之间的区别在于,前者会在一个新的 shell 中执行 "cmd" 命令,而后者则是在当前 shell 中直接执行 "/bin/sh" 命令,并将 "cmd" 作为参数传递给 "/bin/sh" 命令。
具体来说,"/bin/sh sh -c cmd" 会启动一个新的 shell 进程,然后在这个新的 shell 中执行 "cmd" 命令。这个新的 shell 会继承当前 shell 的环境变量和配置,但是会创建一个新的进程来执行 "cmd" 命令。执行完 "cmd" 命令后,新的 shell 进程就会退出,控制权返回到原来的 shell。
而 "/bin/sh cmd" 则是在当前 shell 中直接执行 "/bin/sh" 命令,并将 "cmd" 作为参数传递给 "/bin/sh" 命令。这个命令会继承当前 shell 的环境变量和配置,并且不会创建新的进程。
因此,如果你需要在一个新的环境中执行命令,或者需要保护当前 shell 的环境变量和配置,可以使用 "/bin/sh sh -c cmd"。如果你只需要在当前 shell 中执行 "/bin/sh" 命令,并将 "cmd" 作为参数传递给它,就可以直接使用 "/bin/sh cmd"。
阅读全文