简体   繁体   English

bash脚本包含perl代码-并在Python上运行

[英]bash script contain perl code - and run on Python

I'm trying to run bash script - that contains perl code in it - on Python. 我正在尝试在Python上运行bash脚本-其中包含perl代码。 From some reason - it only execute the bash part and not the perl part. 由于某种原因-它仅执行bash部分,而不执行perl部分。

The Python code that call's the bash Script is this : (2 options) 调用bash脚本的Python代码是这样的:( 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())])

And the bash script: 和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 "

Any help would be much appreciated !!! 任何帮助将非常感激 !!!

Well, I can't say about collapsing your shell script into python, but all that perl does is: 好吧,我不能说将shell脚本折叠成python,但是perl所做的只是:

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

Seems a bit overkill to me. 对我来说似乎有点矫kill过正。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM