Articles of solaris

如何克服Linux上的ksh与安装在AIX / Solaris / HPUX上的不兼容?

我参与了将包含几百个ksh脚本的系统从AIX,Solaris和HPUX移植到Linux的过程。 我已经遇到了ksh在两个系统上行为方式的差异: #!/bin/ksh flag=false echo "a\nb" | while read x do flag=true done echo "flag = ${flag}" exit 0 在AIX,Solaris和HPUX上,Linux上的输出为“flag = true”,输出为“flag = false”。 我的问题是: 是否有一个环境variables,我可以设置让Linux的ksh行为像其他奥斯的'? 否则: 在Linux的ksh上有没有一个选项来获得所需的行为? 否则: 有一个ksh实现可用于Linux与所需的行为? 其他说明: 在AIX上,Solaris和HPUX ksh是ksh88的变种。 在Linux上,ksh是公有域ksh(pdksh) 在AIX,Solaris和HPUX上,dtksh和ksh93(我安装了它们)与ksh一致 我有权访问的Windows NT系统:Cygwin和MKS NT,与Linux一致。 在AIX,Solaris和Linux上,bash是一致的,给出了不正确的(从我的angular度来看)“flag = false”的结果。 下表总结了系统的问题: uname -s uname -r which ksh ksh version flag = ======== ======== ========= […]

转义sedreplacestring中的换行符

这里是我尝试在运行bash用sedreplace一个换行符 $> echo 'abc' | sed 's/b/\n/' anc 不,不是的 $> echo 'abc' | sed 's/b/\\n/' a\nc 不,那也不是。 我想要的输出是 a c 帮帮我!

我怎样才能用Perl杀死整个进程树呢?

什么是从Perl脚本中杀死一个进程及其所有subprocess的最好方法? 它应该至less在Linux和Solaris下运行,不需要安装任何额外的软件包。 我的猜测是通过parsing/ proc中的文件或parsingps的输出(在Linux和Solaris之间似乎都不可移植)来获取所有进程及其父母的列表。 然后杀死树中的所有进程(这似乎容易出现竞争状况)。 我可以忍受这种特殊情况下的竞争条件,但是我怎样才能得到进程列表呢?

如何在Linux和Solaris中编译C?

我想要Makefile可以在Linux和Solaris中编译。 我知道如何单独做到这一点,但我怎样才能将两者结合起来,并能够检测出我正在使用的操作系统? 我正在试图做一个简单的C文件 – 但它是编译器的名称更改。

如何知道C程序的可执行文件是在前台还是后台运行的?

在我的C程序中,我想知道我的可执行文件是否像这样在前台运行 $./a.out 或者像这样 $./a.out &

期望实用工具从jenkins执行时不工作

我们有一个使用expect实用程序进行交互式执行的unix脚本。 当我们从unix服务器运行时,这个脚本运行良好。 如果我们从jenkins运行这个脚本,它不起作用。 以下是脚本 var="xxxxx" expect -c " spawn sudo cp /abcd/sjws/config/obj.conf /abcd/sjws/config/obj.conf_jenkins expect { "Password:" { send $var\r;interact } } exit " 下面是我们从jenkins运行的输出 spawn sudo cp /abcd/sjws/config/obj.conf /abcd/sjws/config/obj.conf_jenkins Password: Password: Build step 'Execute shell' marked build as failure Finished: FAILURE

检查文件修改date和电子邮件,如果它已经改变

我正在寻找一个bash脚本来检查一个文件是否在过去一小时内被修改过,如果修改了它,就会发送一个警报。 这个脚本将在Solaris和Ubuntu中使用。 我相信这不难,但我不是Linuxpipe理员。 有人可以帮忙吗?

我如何修改我的用户PROFILE文件来追加我创build的脚本文件夹到我的PATHvariables的末尾?

我如何修改我的用户PROFILE文件来追加我创build的脚本文件夹到我的PATHvariables的末尾? 我不完全确定这是什么意思。 任何人都可以解释 谢谢 :)

NSIS支持Linux和Solaris

NSIS是否支持Linux和Solaris? 我读了一个地方,我们可以在Linux上编译nsis脚本,但不能执行在任何其他平台上生成的.exe,但Windows。 有人能提供更多的信息吗?

阻止recv()返回小于请求的字节的情况

recv()库函数手册页提到: 它返回收到的字节数。 它通常返回任何可用的数据,直到请求的金额,而不是等待收到所需的全部金额。 如果我们使用阻塞recv()调用并请求100字节: recv(sockDesc, buffer, size, 0); /* Where size is 100. */ 并且只有50个字节被服务器发送,那么这个recv()被阻塞,直到有100个字节可用,否则它将返回接收50个字节。 情况可能是这样的: 服务器发送仅50个字节后崩溃 错误的协议devise,其中服务器只发送50字节,而客户端期待100,服务器也在等待客户端的回复(即套接字closures连接尚未由服务器启动recv将返回) 我对Linux / Solaris平台感兴趣。 我没有开发环境来自己检查一下。