全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 635|回复: 10

shell 脚本请教问题

[复制链接]
发表于 2018-9-30 16:22:05 | 显示全部楼层 |阅读模式
本帖最后由 Gim 于 2018-9-30 16:39 编辑


  1. if [ ! -f /etc/file.conf ] ; then

  2.         command1
  3. fi
复制代码


这个的意思是  假如  /etc/file.conf  存在,执行 command1  


  1. if [ -f /etc/file.conf ] ; then

  2.         command2
  3. fi
复制代码


这个的意思是  假如 /etc/file.conf 不存在   执行 command2

是这个意思吗  ??


很多人都说我理解反了 ,但是 我测试的结果(我测试的是可执行文件) 就是如上   


不信你们测试看看 !!!请测试后再反馈可以吗 !!





 楼主| 发表于 2018-9-30 16:28:08 | 显示全部楼层

我测试的结果  好像就是这样的  

点评

!,相反条件。确定 file.conf 是普通文件?  发表于 2018-9-30 16:34
发表于 2018-9-30 16:32:32 | 显示全部楼层
文件是否存在一般用-e
[ -e /etc/file.conf ] && echo cunzai
[ ! -e /etc/file.conf ] && echo bucunzai
 楼主| 发表于 2018-9-30 16:36:02 | 显示全部楼层

可是我测试的结果  就是这样子啊
      
发表于 2018-9-30 16:37:26 | 显示全部楼层
本帖最后由 tinyfish 于 2018-9-30 16:47 编辑
Gim 发表于 2018-9-30 16:36
可是我测试的结果  就是这样子啊


4楼最优解。请检查文件权限、是否为超链接等非常规文件

  1. john@linux:~$ if [ -f /etc/hosts ] ;then
  2. > echo file exist
  3. > fi
  4. file exist
  5. john@linux:~$
复制代码
发表于 2018-9-30 16:51:28 | 显示全部楼层
linux下有普通文件和特殊文件之分,-f只能判断这是不是一个普通文件,不是普通文件还是会执行 command1,比如你判断了个符号链接,正如楼上所说,用-e是最好的
发表于 2018-9-30 17:11:33 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2018-10-1 13:28:28 | 显示全部楼层
gaoji.me 发表于 2018-9-30 16:51
linux下有普通文件和特殊文件之分,-f只能判断这是不是一个普通文件,不是普通文件还是会执行 command1,比 ...

什么叫普通文件啊    具体一点  可以吗 ??
发表于 2018-10-1 15:30:25 | 显示全部楼层
加!表示相反
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2026-3-7 21:23 , Processed in 0.061970 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表