在shell脚本中有一种变量叫 位置变量,他是这样表示的:$1,表示传入的一个参数,直接跟在脚本后面,我们这里给大家介绍一个例子,这里需要传入一个路径,然后来压缩传入的路径下的所有文件
首先需要判断这个路径是否存在,是否是一个正确的路径,是否是个文件等。。。
还要判断传入的参数的个数,如果不等于1,则提示只需要一个参数就够了,直接退出脚本。
下面是个截图:
- #!/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