在shell脚本中有一种变量叫 位置变量,他是这样表示的:$1,表示传入的一个参数,直接跟在脚本后面,咱们这里给你们介绍一个例子,这里须要传入一个路径,而后来压缩传入的路径下的全部文件shell
首先须要判断这个路径是否存在,是不是一个正确的路径,是不是个文件等。。。bash
还要判断传入的参数的个数,若是不等于1,则提示只须要一个参数就够了,直接退出脚本。less
下面是个截图:ide
- #!/bin/bash
- #判断传入的参数是否等于1,不然退出脚本
- if [ $# -ne 1 ]
- then
- echo "Too much or less parameter .Only be on parameter is good"
- sleep 10
- exit 0
- fi
- DATE=$(date +%Y%d%m)
- path=$1
- #判断传入的路径是否存在
- if [ -a $path ]
- then
- echo "$path is exit,script will be continue...."
- else
- echo "$path is not exit,please input a real path"
- sleep 5
- exit 0
- fi
- #判断传入的路径是不是文件夹
- if [ -d $path ]
- then
- echo "$path is a directory,scritp will be continue...."
- else
- echo "$path is not a direct ,script will be logout"
- sleep 5
- exit 0
- fi
- #开始压缩
- zip -r /root/shell$1.$DATE.zip $1
- #根据返回值判断是否压缩,成功与否都写入日志
- if [ $? -eq 0 ]
- then
- echo "zip floder success" >> /root/shell$1.$DATE.log
- else
- echo "zip failed " >> /root/shell$1.$DATE.log
- fi