perl – 如何确定shell命令是否未运行或未生成输出
发布时间:2020-12-16 06:06:20 所属栏目:大数据 来源:网络整理
导读:我正在通过perl脚本执行一些 shell命令并捕获输出,如下所示, $commandOutput = `cat /path/to/file | grep "some text"`; 我还检查命令是否成功运行,如此 if(!$commandOutput){ # command not run!}else{ # further processing} 这通常有效,我得到正确的输出
我正在通过perl脚本执行一些
shell命令并捕获输出,如下所示,
$commandOutput = `cat /path/to/file | grep "some text"`; 我还检查命令是否成功运行,如此 if(!$commandOutput) { # command not run! } else { # further processing } 这通常有效,我得到正确的输出.问题是,在某些情况下,命令本身不会产生任何输出.例如,有时我试图grep的文本将不会出现在目标文件中,因此不会提供任何输出.在这种情况下,我的脚本将其检测为“命令未运行”,而不是真的. 在perl中区分这两种情况的正确方法是什么? 解决方法
您可以使用它来了解命令是否失败或命令是否返回任何内容
$val = `cat text.txt | grep -o '[0-9]*'`; print "command failed" if (!$?); print "empty string" if(! length($val) ); print "val = $val"; 假设text.txt包含“123ab”,您只想从中获取数字. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |