“/bin/sh‘ls -l -R’”与“/bin/sh -c ‘ls -l -R’”
在 AIX 上运行时,以下两个命令有什么区别?
/bin/sh 'ls -l -R'
/bin/sh -c 'ls -l -R'
What is the difference between the following two commands, when run on AIX?
/bin/sh 'ls -l -R'
/bin/sh -c 'ls -l -R'
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 AIX 上,
/bin/sh
默认为 Korn Shell (ksh)。使用 ksh,这会运行 shell,告诉它执行名为 ls -l -R 的脚本(在当前目录或路径上)。如果找不到具有该名称的脚本,ksh 会将参数视为命令并运行它。
请注意,对于 bash,如果找不到脚本,则会导致错误。
这将启动 shell 的一个新实例,告诉它运行命令 ls -l -R 。
On AIX,
/bin/sh
defaults to the Korn Shell (ksh).With ksh, this runs the shell, telling it to execute the script named
ls -l -R
(in the current directory or on the path). If no script can be found with this name, ksh treats the argument as a command and runs it.Note that with bash, if the script cannot be found, this would result in an error.
This starts a new instance of the shell, telling it to run the command
ls -l -R
.(这是对 Phil Ross 的回应,但我需要格式化:)
使用我的 Linux 帐户之一:
使用我的 Cygwin 安装之一:
您的
/bin/sh
可能会有所不同,但这似乎是适当的行为:有关更多详细信息,请键入
(This is in response to Phil Ross, but I need formatting:)
Using one of my Linux accounts:
Using one of my Cygwin installations:
Your
/bin/sh
may vary, but this appears to be the appropriate behaviour:For more details, type