Reputation: 54
I'm trying to run bash script - that contains perl code in it - on Python. From some reason - it only execute the bash part and not the perl part.
The Python code that call's the bash Script is this : (2 options)
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())])
And the bash script:
#!/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 "
Any help would be much appreciated !!!
Upvotes: 1
Views: 93
Reputation: 53508
Well, I can't say about collapsing your shell script into python, but all that perl
does is:
echo ${USERNAME} \@ ${PASSWORD} >> UserList.txt
Seems a bit overkill to me.
Upvotes: 2