【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读取用户输入

14.2  读取用户输入 14.2.1  变量 上一章我们谈到如何定义或取消变量,变量可被设置为当前shell的局部变量,或是环境变量。如果您的shell脚本不需要调用其他脚本,其中的变量通常设置...

【OpenSSL】使用证书和私钥导出P12格式个人证书

参考上文【OpenSSL】创建证书, 1, 生成ca的私钥 openssl genrsa -out cakey.pem 2048 2, 生成ca的自签名证书请求 openssl req -new ...

CA证书相关的一些基础知识

说明:1和2主要出自苹果文档,3和4主要来自互联网搜索结果。 1、证书的格式 证书(比如CA的根证书)通常有两种格式 (1)二进制格式,一般用于OS X 和 平台的Security framework...

《Linux命令、编辑器与Shell编程》读书笔记5-用户和文件权限管理

一用户管理 系统用户文件 系统用户文件etcpasswd主要保存用户及用户设置 用户密码文件etcshadow保存密码登录相关配置信息分...

Linux系统shell脚本判断变量文件目录:权限、是否存在、空值、相等

1、字符串判断 str1 = str2      当两个串有相同内容、长度时为真 str1 != str2      当串str1和str2不等时为真 -n str1        当串的长...
  • zcywell
  • zcywell
  • 2012年03月01日 10:54
  • 4080

Linux shell脚本中判断变量文件目录:权限、是否存在、空值、相等

#!/bin/sh myPath="/var/log/httpd/" myFile="/var /log/httpd/access.log" #这里的-x 参数判断$myPath是否存在并且...

linux shell读取用户输入

变量 1 [hadoop@master test]$ name=yunix [hadoop@master test]$ echo $name yunix  2 [hadoop@master t...

《Linux命令行与shell脚本》笔记--第13章:处理用户输入

13.1 命令行参数 命令行参数:允许在运行脚本时向命令行添加数据值 $ ./addem 10 3013.1.1 读取参数 bash shell会将一些称为位置参数的特殊变量分配给命令行输入的所有参数...

linux shell 学习之第13章 处理用户输入

第13章  处理用户输入 13.1 1. 命令行参数。command 参数1 参数2...。用空格隔开。在脚本中引用时,$0为程序名(脚本名称),$1为第一个参数,$2为第二个参数,以此类推,一直到第...

linux shell获取用户输入指定范围的单个字符的两种方法

用shell实现的,要求获取用户输一个字符a-zA-Z实现方法。 方法一: echo `echo {a..z}``echo {A..Z}` > /tmp/letterfile while re...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Linux】shell---判断用户输入的是否为文件
举报原因:
原因补充:

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