从solaris移植到linux(即sun命令)

时间:2010-06-29 05:50:05

标签: solaris

现在我正在移植(即solaris到linux)项目..我在solaris中使用一个命令即sun命令,但我无法在linux中找到相应的命令。如果有人请告诉我

以下是solaris中sun commamd的手册页(即man sun)

用户命令machid(1)

NAME      machid,sun,iAPX286,i286,i386,i486,i860,pdp11,sparc,      u3b,u3b2,u3b5,u3b15,vax,u370 - 得到处理器类型的真相      值

概要      太阳

 iAPX286

 i386

 pdp11

 sparc

u3b5

 u3b15

 vax

 u370

说明      以下命令将返回true值(退出代码      0)如果您正在使用该命令的指令集      名称表示。

 sun             True if you are on a Sun system.



 iAPX286         True if you  are  on  a  computer  using  an
                 iAPX286 processor.



 i386            True if you  are  on  a  computer  using  an

 u370            True if you are on an IBMO  System/370  com-
                 puter.



 The commands that do not apply will  return  a  false  (non-
 zero) value.  These commands are often used within makefiles
 (see make(1S)) and shell scripts  (see  sh(1))  to  increase
 portability.

ATTRIBUTES      有关以下attri-的描述,请参阅属性(5)      butes:

 ____________________________________________________________
|       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
|_____________________________|_____________________________|
| Availability                | SUNWcsu                     |
|_____________________________|_____________________________|

另见      make(1S),sh(1),test(1),true(1),uname(1),attributes(5)

注意

SunOS 5.10最后更改:1990年7月5日2

用户命令machid(1)

 The machid family of commands is obsolete. Use uname -p  and
 uname -m instead.

的问候, VEN

2 个答案:

答案 0 :(得分:1)

我在Solaris文档(用户或系统管理员)中没有提到sun命令。如果您指的是sum命令,那么该命令应该可用,或者您可能希望查看cksum

您的命令可能是本地命令,在这种情况下,您需要告诉我们应该做什么,以便我们可以告诉您替代方案。在弄清楚方面,你应该发布:

  • man sun的第一位输出。
  • which sun的输出。
  • 该文件的前20行(假设它是脚本而不是二进制文件)。

在更新问题之后,您看起来有些代码依赖于sun命令返回值。这将在Sun上返回true而在其他任何地方都是false。

所以最简单的解决方案是创建一个返回false的sun脚本:

#!/bin/bash
#
# sun command on non-Sun systems
exit 1

但是,它可能不会那么简单。显然,在那里有一些特定于平台的事情,你必须为Linux添加代码。这不会直接影响sun命令,但是sun返回0时发生的所有事情也必须为Linux完成。

如果在Linux上执行uname -o,则应该在字符串中的某个位置(从内存中)返回“Linux”。这应该足以识别可能只需要的操作系统。

机器和/或处理器的检测可能与软件无关,除非您为所有平台提供二进制可执行文件并选择动态运行哪些。

答案 1 :(得分:1)

根据您添加的内容,我要说您可以将sun替换为false,然后检查uname -puname -m的输出。< / p>