[英]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.