编程语言、Linux 和 Windows Shell 访问

编程语言、Linux 和 Windows Shell 访问

Linux 和 Windows shell 访问工具有什么区别?

在某些编程语言中(根据我的经验,是网络语言),当您需要执行某些命令时,您需要在 Windows 中指定 cmd.exe 的路径,而在 Linux 中您可以立即访问 shell... 有什么区别?为什么有区别?当您运行某种os.execute()命令时,这两个系统中的语言究竟会遇到什么?

编辑:这是一个相当理论性的问题,与编程实践无关。我确实意识到这可能不是一个容易解释的话题,所以链接或显示正确的深入方向也可以解决问题。

下面是 coldfusion 中的一个例子(我应该说这是一个很奇怪的例子):

<cfexecute name="C:\Windows\System32\cmd.exe" arguments="echo Hm" />

答案1

好吧,我会尽量简单一点(广泛的主题)

Windows 和 Linux 之间的区别很明显,核心不一样,我不会追溯历史(如果你好奇的话,可以去维基百科看看),但是 Linux 倾向于使用脚本,因为它允许用户根据自己的需要自定义安装或操作系统,而 Windows 使用 .exe 修改注册键来执行程序。

至于为什么需要输入整个路径来执行 Windows exe,这很简单(我不会进行深入枯燥的解释),Windows 并不真正使用全局变量(简单的解释:registerkey 不需要这个来操作 exe),而 linux 倾向于喜欢全局变量,事实上你可以轻松地在 linux 中添加指向你的脚本的全局变量。

因此,当您想要运行 Linux 脚本时,您可以输入 cmd(指向包含路径的全局变量),然后魔法就会发生。对于 windons,您是全局变量,因此您需要定义要运行的 exe 的路径。如果您愿意,您可以在 Windows 中创建自己的全局变量并像 Linux 一样使用它,但我个人不喜欢这样做。

希望你能更好地理解这个原理。

答案2

它们是完全不同的平台,通过它们各自的 shell 执行的大多数命令都不兼容,但以下命令除外赛格威在 Windows 上,它使用与 Linux shell 相同的命令。

根据经验法则,尽可能尝试避免使用特定于操作系统的调用。

答案3

在 Python 中我可以说:

>>> rc = os.system('echo yes')
yes
>>>

这在 Windows、Linux 或任何 Unix 版本下都同样有效。

我认为您观察到的现象特定于所讨论语言的可移植性。

请注意,产生相同结果的命令字符串子集非常有限。Windows 和 Unix 的共同命令非常少。

相关内容