首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >KSH:将标准标准和标准转换为变量

KSH:将标准标准和标准转换为变量
EN

Stack Overflow用户
提问于 2014-07-08 00:45:25
回答 1查看 679关注 0票数 0

我试图将stderr和stdout打印到一个变量中。

我想检查rtest是否存在并捕获输出,这样如果没有找到脚本,我就可以退出它。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
checkdate=`rtest 2&>1`

问题是,如果我运行我的脚本,stderr仍然会被打印在终端上。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./script.ksh[26]: rtest:  not found
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-08 00:57:47

错误消息表明在路径中找不到脚本/可执行rtest

给出rtest的完整路径(或相对路径),然后运行。注意,即使rtest位于当前目录中,您仍然会得到相同的错误(除非您的路径中有当前目录)。

做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
checkdate=$(/path/to/rtest 2&>1)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
checkdate=$(./rtest 2&>1) # if rtest is in current directory.

要检查rtest是否在路径中而不执行它,可以使用which命令:

{ which rtest 2>&1 >/dev/null; } 2>&1 >/dev/null || { echo "rtest not found"; exit 1; }

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24627408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文