Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在程序中运行shell脚本并输入参数 我正在编写一个用于Mac OSX的C++程序,我有一个第三奇偶程序“PARSE”,用于上传一些JS到服务器。在终端上运行的命令行很少 >parse new [folder] Login>[email] Pw>[pw] projectID>[pid]_Shell - Fatal编程技术网

在程序中运行shell脚本并输入参数 我正在编写一个用于Mac OSX的C++程序,我有一个第三奇偶程序“PARSE”,用于上传一些JS到服务器。在终端上运行的命令行很少 >parse new [folder] Login>[email] Pw>[pw] projectID>[pid]

在程序中运行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命令将等待您所描述的提示,然后它将假装是键盘并输入数据。一个简单的例子:

我想买汽车。这个过程在我的程序中,但我不知道如何将所有cmd打包在一起

当我调用
系统(“解析新的[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
是“密码”(这似乎很有道理),那么这个建议是正确的-不要在程序中存储密码。谢谢大家。我还在努力,你给了我很大的启发我很高兴我能帮上忙。