linux – 检查文件是否存在的单个命令,以及向stdout打印(自定义)消息?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – 检查文件是否存在的单个命令,以及向stdout打印(自定义)消息?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1726字,纯文字阅读大概需要3分钟。
内容图文
![linux – 检查文件是否存在的单个命令,以及向stdout打印(自定义)消息?](/upload/InfoBanner/zyjiaocheng/959/30e6d1c4f7664465999b8a98bf85e259.jpg)
希望可以注意到这一点,现在我遇到了它:
我已经知道可以使用test([)命令测试文件是否存在:
$touch exists.file
$if [ -f exists.file ] ; then echo "yes" ; else echo "no" ; fi
yes
$if [ -f noexists.file ] ; then echo "yes" ; else echo "no" ; fi
no
…但那里有点打字:)所以,如果有一个“默认”单一命令,我会徘徊,将文件存在结果返回给stdout?
我还可以使用退出状态$?的测试:
$test -f exists.file ; echo $?
0
$test -f noexists.file ; echo $?
1
…但这仍然是两个命令 – 逻辑也是“反向”(成功为0,失败为非零).
我问的原因是我需要在gnuplot中测试文件是否存在,其中“system(”command“)返回结果字符
从stdout作为字符串流.“;在gnuplot中,我可以直接执行:
gnuplot> if (0) { print "yes" } else { print "no" }
no
gnuplot> if (1) { print "yes" } else { print "no" }
yes
所以我基本上希望能够写出这样的东西(伪):
gnuplot> file_exists = system("check_file --stdout exists.file")
gnuplot> if (file_exists) { print "yes" } else { print "no" }
yes
…不幸的是,我不能直接通过测试和$?
gnuplot> file_exists = system("test -f exists.file; echo $?")
gnuplot> if (file_exists) { print "yes" } else { print "no" }
no
……我必须颠倒逻辑.
所以,我基本上必须想出一种自定义脚本解决方案(或者将内联脚本编写成一行)……我想,如果已经有一个可以打印0或1的默认命令(或者一个自定义消息)stdout文件存在,然后我不必这样做:)
(注意ls可能是一个候选者,但它的stdout输出太冗长;如果我想避免这种情况,我必须抑制所有输出并再次返回存在状态,如
$ls exists.file 1>/dev/null 2>/dev/null ; echo $?
0
$ls noexists.file 1>/dev/null 2>/dev/null ; echo $?
2
…但这又是两个命令(和更多的打字),以及“倒置”逻辑…)
那么,是否有一个默认命令可以在Linux中执行此操作?
解决方法:
听起来你需要退出退出状态,所以你可以这样做:
system("[ ! -e file ]; echo $?")
要么:
system("[ -e file ]; echo $((!$?))")
(注意-f是if文件存在且是常规文件).
内容总结
以上是互联网集市为您收集整理的linux – 检查文件是否存在的单个命令,以及向stdout打印(自定义)消息?全部内容,希望文章能够帮你解决linux – 检查文件是否存在的单个命令,以及向stdout打印(自定义)消息?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。