在程序中运行shell脚本并输入参数 我正在编写一个用于Mac OSX的C++程序,我有一个第三奇偶程序“PARSE”,用于上传一些JS到服务器。在终端上运行的命令行很少 >parse new [folder] Login>[email] Pw>[pw] projectID>[pid]
我想买汽车。这个过程在我的程序中,但我不知道如何将所有cmd打包在一起 当我调用在程序中运行shell脚本并输入参数 我正在编写一个用于Mac OSX的C++程序,我有一个第三奇偶程序“PARSE”,用于上传一些JS到服务器。在终端上运行的命令行很少 >parse new [folder] Login>[email] Pw>[pw] projectID>[pid],shell,Shell,我想买汽车。这个过程在我的程序中,但我不知道如何将所有cmd打包在一起 当我调用系统(“解析新的[folder]&&&[email]&&&[pw]&&[pid]”时 该过程在登录时保持> 然后我调用系统(“解析新的[文件夹]&&wait&&email]&&wait&&pw]&&wait&&pid]” 它在登录时仍然有效> 我想问一下如何输入cmd的参数?谢谢我不记得该命令的确切名称,但它确实存在 现在,我找到了。expect命令将等待您所描述的提示,然后它将假装是键盘并输入数据。一个简单的例子:
系统(“解析新的[folder]&&&[email]&&&[pw]&&[pid]”时代码>
该过程在登录时保持>
然后我调用系统(“解析新的[文件夹]&&wait&&email]&&wait&&pw]&&wait&&pid]”代码>
它在登录时仍然有效>
我想问一下如何输入cmd的参数?谢谢我不记得该命令的确切名称,但它确实存在
现在,我找到了。expect
命令将等待您所描述的提示,然后它将假装是键盘并输入数据。一个简单的例子:
#!/usr/bin/expect
set timeout 20
spawn "./parse"
FOLDER="/x/y/z"
LOGIN="Randy"
PASSWORD="horse_stapler"
PROJECTID="136729"
expect "parse new " { send "$FOLDER" }
expect "Login>" { send "$LOGIN" }
expect "Pw>" { send "$PASSWORD" }
expect "projectID>" { send "$PROJECTID" }
interact
。。。更多像这样的例子
但请稍候。
有两件事你需要知道
首先,脚本顶部是“#!/usr/bin/expect”的原因是因为它不是bash。相反,这是它自己的特殊脚本。阅读更多链接
这一点非常重要。我不打算讨论这一点,但永远不要在程序中以纯文本形式存储密码。不要将此程序提供给使用纯文本密码的用户,因为这是一个巨大的安全漏洞。我不记得该命令的确切名称,但它确实存在
现在,我找到了。expect
命令将等待您所描述的提示,然后它将假装是键盘并输入数据。一个简单的例子:
#!/usr/bin/expect
set timeout 20
spawn "./parse"
FOLDER="/x/y/z"
LOGIN="Randy"
PASSWORD="horse_stapler"
PROJECTID="136729"
expect "parse new " { send "$FOLDER" }
expect "Login>" { send "$LOGIN" }
expect "Pw>" { send "$PASSWORD" }
expect "projectID>" { send "$PROJECTID" }
interact
。。。更多像这样的例子
但请稍候。
有两件事你需要知道
首先,脚本顶部是“#!/usr/bin/expect”的原因是因为它不是bash。相反,这是它自己的特殊脚本。阅读更多链接
这一点非常重要。我不打算讨论这一点,但永远不要在程序中以纯文本形式存储密码。不要将此程序提供给使用纯文本密码的用户,因为这是一个巨大的安全漏洞。解析程序似乎是从标准输入读取的。如果这是正确的,您需要确保在单独的输入行中为其提供电子邮件、目录和项目ID
测试是否可以从简单的shell脚本执行此操作:
parse new [folder] <<EOF
[email]
[pw]
[pid]
EOF
parse new[folder]该parse
程序似乎正在读取标准输入。如果这是正确的,您需要确保在单独的输入行中为其提供电子邮件、目录和项目ID
测试是否可以从简单的shell脚本执行此操作:
parse new [folder] <<EOF
[email]
[pw]
[pid]
EOF
parse new[folder]expect
是一个很好的解决方案,如果pw
是“password”(看起来很有道理),那么这个建议是正确的-不要在程序中存储密码。谢谢你们。我还在工作,你给了我一个大提示我很高兴我能帮上忙。expect
是一个很好的解决方案,如果pw
是“密码”(这似乎很有道理),那么这个建议是正确的-不要在程序中存储密码。谢谢大家。我还在努力,你给了我很大的启发我很高兴我能帮上忙。