在 AIX 上运行 Linux Shell
Posted
技术标签:
【中文标题】在 AIX 上运行 Linux Shell【英文标题】:Running Linux Shell on AIX 【发布时间】:2019-09-05 04:36:44 【问题描述】:我试图在 AIX 上执行一个 shell 脚本,但它失败了,因为在 ksh 中无法识别来自 shell 的一些声明/指令(如 readarray、数组声明、带有特定参数的日期命令等) p>
我想在 AIX 上执行这个 linux 脚本而不用 ksh 重写整个脚本。
我尝试使用 #!/usr/bin/env bash
或 #!/bin/sh
等不同的 shebang 运行脚本,但 AIX 似乎仍在通过 ksh 运行它。
有人有在 AIX 上运行 linux shell 的解决方案吗?
« AIX Toolbox for Linux Applications » 似乎提供了在 AIX 上执行 linux shell。
有人可以确认我的信息吗?
如何检查 AIX Toolbox 是否已安装在 AIX 服务器上? (我没有此服务器的管理权限)
如何执行 AIX Toolbox 来运行 shell 脚本?
提前感谢您的帮助
【问题讨论】:
您的意思是,您希望运行 bash 脚本(“Linux 脚本”现在使用简约的dash
来实现兼容性)。这是可能的,如果你安装 bash。您可能已经在 /opt/freeware/bin 中安装了它——检查一下。
请注意 date(1) 不是外壳的一部分; AIX!date 不如 GNU!date。
如果你想编写跨平台的 shell 脚本,最好的办法是只坚持 posix shell 的特性,只使用 posix 描述的程序(和选项)。
【参考方案1】:
从link 可以看出,您可以安装 AIX Toolbox for Linux Applications,您将拥有bash
。你也可以只下载这个包并安装它。
安装后,您可以像操作系统中的任何其他程序一样执行bash
。
但一般来说,尝试在 AIX 或 HP-UX 上运行 linux 脚本时会遇到很多挑战。
【讨论】:
感谢您的回答,但经过验证,bash 似乎已经安装在此服务器上。 @Romain,在这种情况下将其添加到 PATH 变量中并【参考方案2】:你可以使用 bash!需要从here 安装yum。安装 yum 后,它将自动安装 bash 包。
放入一个临时的空文件夹,解压并安装所有 RPM:rpm -Uvh *.rpm
。
最后编辑/etc/security/login.cfg
anb 和“/usr/bin/bash
”:
shells = /bin/sh,/bin/bsh,/bin/csh,/bin/ksh,/bin/tsh,/bin/ksh93,/usr/bin
/sh,/usr/bin/bsh,/usr/bin/csh,/usr/bin/ksh,/usr/bin/tsh,/usr/bin/ksh93,/usr/bin/
rksh,/usr/bin/rksh93,/usr/sbin/uucp/uucico,/usr/sbin/sliplogin,/usr/sbin/snappd,
/usr/bin/bash
将路径/usr/bin/bash
添加到/etc/shells
:
# echo “/usr/bin/bash” >> /etc/shells
将 shell 更改为 se bash:
# chuser shell=/usr/bin/bash root
在 root 的家中创建一个新的.bash_profile
:
# .bash_profile
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
PS1="[\u@\h \w]\$ "
export PS1
用root登录,你会看到这样的东西:
[root@aixserver ~]#
【讨论】:
以上是关于在 AIX 上运行 Linux Shell的主要内容,如果未能解决你的问题,请参考以下文章
如何在 AIX 中将 jar 文件作为服务运行,如果崩溃将自动重启?