Leodawn1992
2017-04-04 12:06
采纳率: 100%
浏览 2.0k

shell中条件判断怎么判断家目录为存在的目录?

#/bin/bash

file="~"
[ -e $file ] && echo "yes" || echo "no"

上述代码输出结果为no,明明为家目录,为什么输出结果为no?希望大神们能帮忙解答一下。

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • SunnyZhou-1024 2017-04-04 12:22
    已采纳
    其实file存储的是~,并不是home,正确的做法是[ -e $HOME ] && echo "yes" || echo "no"  .terminal中只不过为了方便识别显示为~
    
    打赏 评论
  • Leodawn1992 2017-04-04 12:50

    根据1楼我又想,如果~只是代表~这个符号,那么同理点(.)这个符号也仅仅代表点,可是我试过了,如果把上面的代码换成点,就会返回yes。

    上面是我的困扰。
    后来我又想明白了,因为文件系统里本身就有点这个文件。谢谢1楼的解答。

    打赏 评论

相关推荐 更多相似问题