最近在写一个小的shell程序,遇到这个问题,在diff -q 两个文件时,如果文件不相同就输出到result文件中,若相同则无输出,即result文件为空,但如何判断result文件是否为空并继续下一步的命令呢?

在网上看到用:

if [ -z $result ]

then

******

fi

这是什么意思?是判断result文件是否为空的指令么?

我使用这个语句发现毫无作用,好像根本没有判断就继续下一步了。。。请教高人改如何判断?小弟在此谢过了~~~!

|

if [ -e $result -a ! -s $result ];then

echo "empty"

fi

|

为什么要把简单的问题复杂化 2个文件如果相同diff回返回0 即命令执行成功 如果文件不相同 则返回1

那么直接

if diff fiel1 fiel2

then

2个文件相同哦,在这里要要干嘛就干嘛

else

2个文件不相同哦,你爱干嘛就干嘛

fi

判断文件的所有参数

-a file exists.

-b file exists and is a block special file.

-c file exists and is a character special file.

-d file exists and is a directory.

-e file exists (just the same as -a).

-f file exists and is a regular file.

-g file exists and has its setgid(2) bit set.

-G file exists and has the same group ID as this process.

-k file exists and has its sticky bit set.

-L file exists and is a symbolic link.

-n string length is not zero.

-o Named option is set on.

-O file exists and is owned by the user ID of this process.

-p file exists and is a first in, first out (FIFO) special file or

named pipe.

-r file exists and is readable by the current process.

-s file exists and has a size greater than zero.

-S file exists and is a socket.

-t file descriptor number fildes is open and associated with a

terminal device.

-u file exists and has its setuid(2) bit set.

-w file exists and is writable by the current process.

-x file exists and is executable by the current process.

-z string length is zero.

是用 -s 还是用 -f 这个区别是很大的!

如果需要判断文件存在并且文件大小大于0 ,直接用参数-s即可,不需要在用awk和ls等来得到文件大小。

如果只判断文件是否存在,则用参数 -f 即可。

|

-e 文件存在

-a 并且

-a 文件大小大于0

提示错误 [: too many arguments

试试if [ -e "$result" -a ! -s "$result" ];then

linux判断文件是否为空,linux shell编程 如何判断一个文件是否为空相关推荐

  1. linux shell 文件空,linux shell编程 如何判断一个文件是否为空

    shell 判断文件/目录是否为空 jfkidear144932015-01-15 shell中如何判断一个变量是否为空 l_nan365492014-07-14 在shell中如何判断一个变量是否为 ...

  2. linux怎么让某一个组对一文件可读可写,设置linux文件权限,使得同一用户组的可以对一个文件自由修改...

    新添用户,设置权限 新增用户的时候设置用户所属组,将想要一起的用户设置到一个组内 usermod -g 用户组 用户名 #这里将用户的主组设置为这个总组,这里为了再之后创建文件的时候文件所属组为这个组 ...

  3. linux 把一个文件夹重命名后,移动到另外一个文件夹下

    linux 把一个文件夹重命名后,移动到另外一个文件夹下 mv /ssd1/AAA/PBMC_rat/RAT/index /ssd1/zhihengfeng/PBMC_rat/star

  4. linux整个目录复制移动,Linux将一个文件夹或文件夹下的所有内容复制到另一个文件夹,个人常用收录...

    1.将一个文件夹下的所有内容复制到另一个文件夹下 cp -r /home/packageA/* /home/cp/packageB/ 或 cp -r /home/packageA/. /home/cp ...

  5. 复制文件夹下所有文件(包括子文件夹),到一个文件夹

    把子目录文件复制到当前目录 读取文件夹下所有文件路经,包括子文件夹下 import PIL.Image as Image import os import shutil def list_folder ...

  6. 批量上传相册,将一个文件夹下的所有图片,复制到另一个文件夹,仅给出文件夹目录

    package cn.hp.demo01;import java.io.*;/* * 批量上传相册 *将一个文件夹下的所有图片,复制到另一个文件夹 *仅给出文件夹目录*/ public class D ...

  7. Linux进阶之shell编程--if判断和for循环(四)

    目录 1.for循环 2.if判断 1.for循环 for i in [取值列表] 可以取:数字 字符串 命令结果`` 序列 do 要执行什么命令 done 案列:测试1-255有多少个IP地址在线( ...

  8. Linux后台开发系列之「06.Shell 编程基础

    程序员的工作台 版权声明:本文为 cdeveloper 原创文章,可以随意转载,但必须在明确位置注明出处! 本文摘要 本文主要介绍 Linux Shell 编程的基础知识,包含下面 8 个方面: Sh ...

  9. Linux从入门到精通系列之SHELL编程循环语句语法及实例详解(forwhileuntil)

    前言 Shell作为一种脚本编程语言,同样了包含了循环,分支等其他程序控制结构,从而能够轻松完成更加复杂.强大的功能.我们今天就来认识for.while.case语句的具体应用. 插个小广告吧,虽然我 ...

  10. [ SHELL编程 ] 远程服务器传输文件

    在shell编程中经常需要获取远程服务器文件.手工操作中使用scp命令完成.为避免脚本执行scp输入密码进行交互,需先建立本机服务器当前用户和远程服务器指定用户的信任关系.具体代码见操作实例,重点关注 ...

最新文章

  1. 这个假发太逼真!GAN 帮你换发型,alignment 步骤去掉生硬感
  2. 外省籍进城务工人员随迁子女在浙江就地升学政策出台
  3. html5 td中的5它空隙--待解决
  4. 锁屏壁纸开发 Android,Android开发自己的锁屏壁纸
  5. 现在生活好累啊。。。
  6. 计算机开启网络共享,一键开启共享_局域网win7访问xp_打开默认共享命令
  7. javascript基础知识之三座大山
  8. 计算机网络启动慢,电脑开机后网络连接图标出现的太慢了,2分钟才能出现,不出现什么都做不了,怎么办?如果手动设置...
  9. 生成二维码与条形码的各种方法
  10. 数据可视化实验一之单变量数据的统计图表可视化
  11. 我们的竞争对手在看向哪里---对勺海公众号的挖掘与细分
  12. python樱花_python画樱花树代码 具体代码介绍
  13. NI LabVIEW 2014SP1视觉开发必备软件和工具包
  14. android studio依赖关系图,Android studio 如何查看 library 间的依赖关系
  15. Hi3516A 烧录内核后无法ping通网关和自己
  16. Unity shader 入门之渲染管线三、空间转换
  17. mui简单的详情页面
  18. VC++操作Excel 2007
  19. 判定(半)正定矩阵的特殊大于(等于)简写符号
  20. r在服务器如何输出文件,在Rstudio服务器中编译Rmd时,.tex文件保存在哪里

热门文章

  1. 20180918-1 词频统计
  2. Python学习week2
  3. SQL Server Profiler 常见问题总结
  4. python06-常用模块
  5. centos7 重置root 密码
  6. MVC、MVP、MVVM、Angular.js、Knockout.js、Backbone.js、React.js、Ember.js、Avalon.js、Vue.js 概念摘录...
  7. 机器学习中的相似性度量(转载)
  8. 屌丝笔记本玩Windows Phone 8开发(在Windows Server 2012中安装WP8 SDK)
  9. LiveWallPaper 让您的壁纸动起来 连载(三)——OpenGL ES特辑
  10. Spring Cloud源码分析——Ribbon客户端负载均衡