скрипт bash содержит perl-код - и запускается на Python

63
5

Я пытаюсь запустить скрипт bash, содержащий в нем Perl-код, на Python. По какой-то причине - он выполняет только часть bash, а не часть perl.

Код Python, вызывающий сценарий bash, следующий: (2 варианта)

 bashCommand = "/bin/bash createUser.sh "+  str(self.emptyNameField.text()) +" "+ str(self.emptyPWField.text())+" " + str(self.emptyGroupField.text())
os.system(bashCommand)

subprocess.call([path+'createUser.sh', str(self.emptyNameField.text()),str(self.emptyPWField.text()),str(self.emptyGroupField.text())])

И сценарий bash:

#!/bin/bash

USER_NAME="$1"
PASSWORD="$2"
UNIQUE_ID="$3"
sudo dscl . create /Users/$USER_NAME
sudo dscl . create /Users/$USER_NAME UserShell /bin/bash
sudo dscl . create /Users/$USER_NAME RealName "$USER_NAME"
sudo dscl . create /Users/$USER_NAME UniqueID $UNIQUE_ID
sudo dscl . create /Users/$USER_NAME PrimaryGroupID 1000
sudo dscl . create /Users/$USER_NAME NFSHomeDirectory /Local/Users/$USER_NAME
sudo dscl . passwd /Users/$USER_NAME $PASSWORD
export USER_NAME
export PASSWORD
export UNIQUE_ID

script=$(cat <<'EOF'

$file = "UsersList.txt";

open LIST, '>>',$file;
print LIST "$ENV{USER_NAME} @ $ENV{PASSWORD}\n";
close(LIST);
EOF
)
perl -e "$script"

echo "User Name: $USER_NAME , Password: $PASSWORD "

Любая помощь приветствуется !!!

спросил(а) 2021-01-19T17:43:53+03:00 6 месяцев назад
1
Решение
78

Ну, я не могу сказать о сворачивании вашего сценария оболочки в python, но все, что делает perl, это:

echo ${USERNAME} \@ ${PASSWORD} >> UserList.txt

Кажется, это немного переборщило.

ответил(а) 2021-01-19T17:43:53+03:00 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема