我试图将stderr和stdout打印到一个变量中。
我想检查rtest是否存在并捕获输出,这样如果没有找到脚本,我就可以退出它。
checkdate=`rtest 2&>1`
问题是,如果我运行我的脚本,stderr仍然会被打印在终端上。
./script.ksh[26]: rtest: not found
发布于 2014-07-08 00:57:47
错误消息表明在路径中找不到脚本/可执行rtest
。
给出rtest
的完整路径(或相对路径),然后运行。注意,即使rtest
位于当前目录中,您仍然会得到相同的错误(除非您的路径中有当前目录)。
做:
checkdate=$(/path/to/rtest 2&>1)
或
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; }
https://stackoverflow.com/questions/24627408
复制相似问题