J.P*_*ong 1 unix shell perl solaris
我有一个perl脚本调用ps -ef代码中的某个地方.此脚本适用于Linux,但不适用于Solaris 5.10.我的工作是在我的.profile中定义一个别名:
ps_wrapper()
{
if [[ $1 = "-ef" ]]; then
/usr/ucb/ps auxwwww
else
/usr/ucb/ps $1
fi
}
alias ps=ps_wrapper
Run Code Online (Sandbox Code Playgroud)
问题是perl脚本中没有别名.如何让脚本看到这个别名?
ps_wrapper是仅为shell所知的别名,而不是在其下运行的程序.有很多方法可以完成你想要完成的任务:
ps_wrapper一个脚本并将其放在一个PATHPOSIX::uname()并相应地形成ps命令行.ps功能的模块(可能是这个?).还有一些想法:
PS_PERSONALITY环境变量可用于设置ps"个性".ps遵循POSIX/XPG/SUS,因此通过坚持命令行的SUS语义,ps您(理论上)可以在两个系统上获得相同的命令行和输出.