qt中如何模拟shell里的echo命令?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt中如何模拟shell里的echo命令?相关的知识,希望对你有一定的参考价值。

比如在终端我输入: echo 1 > value 对着呢,可以把1写入到value文件中,可是我在qt中输入QProcess::execute("echo 1 > value");运行程序后却是在终端输出“1 > value”这个字符串

echo是bash的内建指令,你使用终端启动的是bash这个应用程序,如果想执行这个命令,你应该创建bash进程。 参考技术A 不带引号:system("echo 1 > value");但是输出结果带双引号的我还搞不定。
带引号:system((const char *)QString::fromLocal 8Bit("echo 'filenam \"pxelinux 0\";#指定pxe引导程序文件名' >> %1").arg(qstring_file_path).toLocal8Bit();
参考技术B 直接echo好像确实不行,可以通过读写文件的方式修改value的值,效果应该一样的

shell脚本中如何输出标准错误和标准输出

shell脚本中有些信息需要输出到标准输出有些需要输出到标准错误,如何实现

echo "错误信息" 1>&2
这样就可以把错误信息字符串写到流里面,而不是直接写到文件中。
一般适合应用程序调用shell脚本返回错误信息到错误输出流中
参考技术A echo "errormsg" > &2; 标准错误
echo "infomsg" > &1; 标准输出本回答被提问者和网友采纳
参考技术B 给你举个例子吧
string=`echo hello`
就把字符串hello放到string变量中去了追问

没看懂你想表达什么。

参考技术C command 1>>stdout.log 2>>error.log追问

我是要在脚本中把信息输出到标准错误流,不是把脚本中某个命令的错误流重定向到文件

我是要在脚本中把信息输出到标准错误流,不是把脚本中某个命令的错误流重定向到文件

追答

其实是一样的,你在脚本中打印出来的东西都会进入标准输出
例如我在脚本中遍历文件,我逐行打印,执行的时候按照command 1>>stdout.log 2>>error.log的格式执行,那么你所打印的内容都会进入stdout.log ,至于错误信息,在bash下执行状态为非0的都会将错误记录到error.log

以上是关于qt中如何模拟shell里的echo命令?的主要内容,如果未能解决你的问题,请参考以下文章

Shell printf 命令

10-shell printf命令

bash shell如何获取到命令执行结果的值?

Linux常用命令13 - echo

shell--6Shell printf 命令

Shell教程 之printf命令