繁体   English   中英

当我通过Qt中的QProcess调用脚本时,很少有Shell命令不起作用

[英]Few shell commands doesn't work when I Invoke a script via QProcess in Qt

嗨,我有一个执行某些命令的shell脚本,当我使用终端调用该脚本时,它工作正常,但是当我使用QProess调用该脚本时,很少的命令不能很好地工作。

这是脚本

#!/bin/bash

echo "Invoking the script"
euid=$1
if [ $# -ne 1 ]; then
echo "Arguments missing"
      exit 1
fi

echo "arg 1: $1"
data=$1;
name=$(echo $data | cut -b 1-7)
age= $(echo $data | cut -b  10-11)
echo "$name"
echo "$age"

这是我使用QProcess的方式

// Environment setup
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
candidateProcess->setProcessEnvironment(env);
QString script("/home/root/scripts/getInfo.sh");
candidateProcess->start("/bin/bash", QStringList() << script << qwertyuand21");

如果我在shell中运行此脚本,效果很好,请获取name和age的值。 但是,当我使用上述方法从Qt调用脚本时,我遇到了cut命令的错误,首先3个echo运行良好,然后由于cut : command not found出现了cut命令错误,然后echo cut : command not found任何结果,因为剪切命令失败。 是什么原因呢? 我已经为该过程提供了shell,但仍然存在这些错误?

您可以尝试使用sh命令和一些测试参数

QString script("/home/root/scripts/getInfo.sh arguments123456");
Process->start("/bin/sh ", QStringList() << script");

暂无
暂无

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

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