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

标签 python bash perl shell unix

我正在尝试在 Python 上运行 bash 脚本(其中包含 perl 代码)。 由于某种原因 - 它只执行 bash 部分而不执行 perl 部分。

调用 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())])

还有 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 "

任何帮助将不胜感激!!!

最佳答案

好吧,我不能说将你的 shell 脚本折叠成 python,但是 perl 所做的就是:

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

对我来说似乎有点过分了。

关于python - bash 脚本包含 perl 代码 - 并在 Python 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32602143/

相关文章:

python - 将 Iris 约束与 OR 结合起来?

Python-当字典包含重复键时,从字典中选择第一个第一个键值对

linux - 无法将读取输入传递到 cat 路径

perl - *nix : perform set union/intersection/difference of lists

perl - 是否有使用 Module::Build 编写测试(和构建)的文档?

perl - 如何根据来自不同散列的键对散列中的值求和?

python - 如何使用正则表达式在字符串中的任何字母中查找逗号并删除逗号?

python - 矩阵的距离矩阵

bash - 为什么 **find** 找不到任何东西?

bash - 在 Azure Devops 中,如何在 "Azure CLI task v.2"运行的 shell 脚本中使用管道变量?