在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