您好,我有一个执行一些命令的外壳脚本,当我使用终端调用该脚本时,它工作得很好,但当我使用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调用脚本时,我得到了剪切命令的错误,前3个echo工作正常,然后我作为cut : command not found得到了cut命令的错误,然后由于cut命令失败,echo命令什么也没有出现。这是什么原因呢?我已经为进程提供了shell,但仍然存在这些错误??
发布于 2017-05-19 16:14:25
您可以尝试使用sh命令和一些测试参数
QString script("/home/root/scripts/getInfo.sh arguments123456");
Process->start("/bin/sh ", QStringList() << script");https://stackoverflow.com/questions/44064474
复制相似问题