【问题标题】:difference between script shell on linux and script shell on solarislinux 上的脚本 shell 和 solaris 上的脚本 shell 之间的区别
【发布时间】:2017-01-27 01:04:44
【问题描述】:

我想学习 shell 脚本,我将在工作中使用 solaris。 linux上的shell脚本和solaris上的shell脚本有什么区别吗?

【问题讨论】:

  • 大多数 Linux 和 Solaris(以及 mac 的 OSX)版本中的默认 shell 是 bash。大多数东西都是一样的。您也可以使用 perl 或 python 编写脚本,它们也应该可用。

标签: linux shell unix solaris


【解决方案1】:

Linux 和 Solaris 之间没有区别,区别在于您在各自上使用的 shell:sh、csh、ksh、zsh、bash 等。

当您编写一个 shell 脚本时,您应该始终以 shebang 开头,表明该脚本是为哪个 shell 编写的。例如
#!/bin/bash

#!/bin/csh

注意 shebang 也适用于非 shell 语言的脚本:
#!/usr/bin/perl
#!/usr/bin/python

bash shell 现在几乎无处不在,如果它在您的 Solaris 系统上可用,我建议您学习它。
/bin/shPOSIX shell,而您应该了解这一点,以及它与 bash 之间的区别。

ksh 是对 sh 的改进,zsh 也是如此(但 zsh 声称它“是为交互使用而设计的 shell”

cshconsidered evil

这些天 bashsh 是要学习的。

【讨论】:

  • /bin/sh 是 POSIX shell... 小心。因为 Linux 倾向于完全混淆 shbash - sh 甚至可能直接软链接到 bash。 Solaris 不这样做。许多是由于 bashisms 而在 Solaris 上失败的 Linux“sh”脚本。
【解决方案2】:

谢谢大家。 我从你的回复中了解到,我必须学习兼容 linux 和 solaris 的 bash shell。

【讨论】:

  • 你的结论是对的,但是你应该接受@stephen的回答来表示感谢。