【Linux】shell---判断用户输入的是否为文件

原创 2016年05月30日 10:20:40

  编写一个shell文件,判断用户输入的是否为一个文件,如果是文件的话是个什么样的文件(普通文件,目录还是别的?)
  首先介绍一下test命令常用选项

选项 含义
-e 该文件名是否存在
-f 该文件名是否存在且为文件(file)
-d 该文件名是否为目录
-z 改文件名是否为空

除了使用test命令之外,这些命令也可以用[]来代替(注意,’[‘和’]’两遍两边都要加空格)比如:
这里写图片描述

下面是判断用户输入的是否为文件的shell实现

#!/bin/bash
read -t 30 -p "please input a file name:" filename
if [ -z "$filename" ]
        then
                echo "nothing input"
                exit 1
elif [ ! -e "$filename" ]
        then
                echo "the $filename is not exist"
                exit 2
elif [ -f "$filename" ]
        then
                echo "$filename is a regular file"
elif [ -d "$filename" ]
        then
                echo "$filename is a directory"
else
        echo "$filename is an other file"
fi

编辑完成后,退出编辑器,输入chmod 755 shell5.sh
执行shell5.sh的结果
这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。

shell判定文件夹下存在某种类型的文件

该例程用途: 判定/mnt文件夹下是否存在ko文件。存在则把ko文件mv到update文件夹下,不存在则从update文件夹中把ko文件mv过来#!/bin/shexist_file() {...
  • wj8987922
  • wj8987922
  • 2016年09月05日 14:35
  • 1248

Linux C判断文件是否为目录或者是普通文件

主要函数: stat(),opendir(),readdir(), 主要结构体:struct dirent  和 struct stat 主要宏:S_ISDIR(),     S_ISREG() ...
  • u014453898
  • u014453898
  • 2017年02月05日 00:41
  • 3150

linux shell 指令 诸如-d, -f, -e之类的判断表达式

来源:http://zhidao.baidu.com/question/322131711.html   文件比较运算符 -e filename  如果 filename存在,则为真  [ -e...
  • sxzlc
  • sxzlc
  • 2012年05月07日 15:23
  • 33409

linux shell 指令 诸如-d, -f, -e之类的判断表达式

文件比较运算符 -e filename 如果 filename存在,则为真 [ -e /var/log/syslog ] -d filename 如果 filename为目录,则为真 [ -d...
  • AlbertFly
  • AlbertFly
  • 2016年07月26日 16:55
  • 575

shell脚本 -d 是目录文件,那么-e,-f等说明

-e filename 如果 filename存在,则为真 -d filename 如果 filename为目录,则为真 -f filename 如果 filename为常规文件,则为真 -L...
  • xzyy004
  • xzyy004
  • 2013年03月26日 15:11
  • 24045

Linux shell脚本之 if条件判断

bash shell会按顺序执行if语句,如果command执行后且它的返回状态是0,则会执行符合该条件执行的语句,否则后面的命令不执行,跳到下一条命令。当有多个嵌套时,只有第一个返回0退出状态的命令...
  • doiido
  • doiido
  • 2015年02月27日 13:34
  • 4035

shell 判断键盘输入

#!/bin/bash echo "Hit a key, then hit return."read Keypress case "$Keypress" in [A-Z] ) echo "Upperc...
  • hn307165411
  • hn307165411
  • 2011年04月17日 09:25
  • 1855

shell中条件判断if中的-z到-d的意思

shell中条件判断if中的-z到-d的意思 [ -a FILE ] 如果 FILE 存在则为真。 [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真。 [ -c FILE ] ...
  • longyinyushi
  • longyinyushi
  • 2016年02月24日 09:58
  • 14112

Shell脚本命名引发的问题

1、问题描述: 要怎么样监视Linux下的一些进程是否在运行,对于一些必要启动的进程,如果监视到该进程挂了,没有在运行,要自动启动该进程,并报警。这里以sshd进程为例进行一些实验: 2、实验结果...
  • heshan307
  • heshan307
  • 2016年08月14日 20:45
  • 652

【Linux】shell---判断用户输入的是否为文件

编写一个shell文件,判断用户输入的是否为一个文件,如果是文件的话是个什么样的文件(普通文件,目录还是别的?)   首先介绍一下test命令常用选项 选项 含义 -e 该文件名是否存...
  • ww1473345713
  • ww1473345713
  • 2016年05月30日 10:20
  • 1262
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Linux】shell---判断用户输入的是否为文件
举报原因:
原因补充:

(最多只允许输入30个字)