Запуск оболочки Linux в AIX

Я попытался выполнить сценарий оболочки на AIX, и это не удалось, потому что некоторые объявления/инструкции (такие как readarray, объявление массива, команда даты с определенными аргументами и т. д.) из оболочки не распознаются в ksh

Я хотел бы выполнить этот linux-скрипт на AIX, не переписывая весь скрипт в ksh.

Я пытался запустить скрипт, используя другой шебанг, например #!/usr/bin/env bash или #!/bin/sh, но AIX, похоже, все еще запускает его через ksh.

У кого-нибудь есть решение для запуска оболочки Linux на AIX?

«AIX Toolbox for Linux Applications», по-видимому, обеспечивает выполнение оболочки Linux в AIX.

Может ли кто-нибудь подтвердить мне эту информацию?

Как проверить, установлена ​​ли программа AIX Toolbox на сервере AIX? (у меня нет прав администратора на этом сервере)

Как запустить AIX Toolbox для запуска сценария оболочки?

Заранее спасибо за вашу помощь


person Romain    schedule 15.04.2019    source источник
comment
Вы имеете в виду, что хотите запустить bash-скрипт (скрипты Linux в настоящее время используют минималистичный dash для достижения совместимости). Это возможно, если вы установите bash. Возможно, он уже установлен в /opt/freeware/bin — проверьте его.   -  person Lorinczy Zsigmond    schedule 15.04.2019
comment
Имейте в виду, что date(1) не является частью оболочки; AIX!date уступает GNU!date.   -  person Lorinczy Zsigmond    schedule 15.04.2019
comment
Если вы хотите писать кроссплатформенные сценарии оболочки, лучше всего придерживаться только функций оболочки posix и использовать только программы (и параметры), описанные в posix.   -  person Shawn    schedule 15.04.2019


Ответы (2)


Как видно из ссылки, вы можете установить AIX Toolbox для приложений Linux, и у вас будет bash. Также вы можете скачать только этот пакет и установить его.

После установки вы можете запускать bash как любую другую программу в вашей ОС.

Но в целом вы можете столкнуться со многими проблемами при попытке запустить сценарий Linux в AIX или HP-UX.

person Romeo Ninov    schedule 15.04.2019
comment
Спасибо за ваш ответ, но после проверки кажется, что bash уже установлен на этом сервере. - person Romain; 15.04.2019
comment
@Romain, в таком случае добавьте его в переменную PATH и - person Romeo Ninov; 15.04.2019

Вы можете использовать Баш! Необходимо установить yum из здесь. После установки yum автоматически установится пакет bash. Поместите во временную пустую папку, распакуйте ее и установите все RPM: rpm -Uvh *.rpm.

Отредактируйте /etc/security/login.cfg и "/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

Измените оболочку на se bash:

# chuser shell=/usr/bin/bash root

Создайте новый .bash_profile внутри дома root с помощью:

# .bash_profile
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
PS1="[\u@\h \w]\$ "
export PS1

Войдите в систему с правами root, и вы увидите что-то вроде этого:

[root@aixserver ~]#
person Mr. Toth    schedule 08.05.2020