您好我有一个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命令的错误为cut : command not found
然后没有出现echo命令,因为切断命令失败。
这是什么原因?我为进程提供了shell但仍然存在这些错误??
答案 0 :(得分:0)
您可以尝试使用sh
命令和一些测试参数
QString script("/home/root/scripts/getInfo.sh arguments123456");
Process->start("/bin/sh ", QStringList() << script");