【问题标题】:bash script contain perl code - and run on Pythonbash 脚本包含 perl 代码 - 并在 Python 上运行
【发布时间】:2015-12-12 15:48:57
【问题描述】:

我正在尝试在 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 "

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

【问题讨论】:

  • 您是否尝试使用 perl 可执行文件的完整路径?比如'/usr/bin/perl -e "$script"'
  • Rube Goldberg,是你吗?-) 说真的,你为什么不添加一些生成的 C 代码和对 gcc 的调用?
  • 我相信您也可以在其中获得一些混淆代码生成器!

标签: python bash perl shell unix


【解决方案1】:

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

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

对我来说似乎有点矫枉过正。

【讨论】:

    猜你喜欢
    • 2023-01-08
    • 2020-12-19
    • 2020-03-31
    • 2023-04-07
    • 2020-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-25
    相关资源
    最近更新 更多