现在我正在移植(即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
答案 0 :(得分:1)
我在Solaris文档(用户或系统管理员)中没有提到sun
命令。如果您指的是sum
命令,那么该命令应该可用,或者您可能希望查看cksum
。
您的命令可能是本地命令,在这种情况下,您需要告诉我们应该做什么,以便我们可以告诉您替代方案。在弄清楚方面,你应该发布:
man sun
的第一位输出。which sun
的输出。在更新问题之后,您看起来有些代码依赖于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 -p
或uname -m
的输出。< / p>