shift命令
每執行一次shift,引數的序列左移,$#的值減1
舉例:輸出累加和
#!/bin/bash
if [ $# -le 0 ]
then
echo "no parameters"
fisum=0
while [ $# -gt 0 ]
do sum=`expr $sum + $1`
shift
done
echo $sum
這裡的$sum + $1並不是sum+1的意思,而是sum加上第乙個引數的意思,由於shift的作用,引數的順序會左移。
結果:shell自定義函式
語法:function 函式名 ()
命令其中function可以不寫,呼叫函式時不用跟小括號,函式中變數均為全域性變數,沒有區域性變數。
舉例
#!/bin/bash
example ()
example 22 55
結果
案例一:自動備份mysql指令碼
#!/bin/bash
#auto backup mysql
#備份路徑
bakdir=/data/backup/mysql/`date +%y-%m-%d`
#將備份的資料庫
mysqldb=test
#資料庫密碼
mysqlpwd=root
#資料庫使用者
mysqlusr=root
#必須使用root執行
if [ $uid -ne 0 ] ; then
echo "this script must use the root user"
sleep 2
exit 0
fi#判斷目錄是否存在,不存在則新建
if [ ! -d $bakdir ] ; then
mkdir -p $bakdir
else
echo this is $bakdir exists...
fi#備份
/usr/bin/mysqldump -u$mysqlusr -p$mysqlpwd -d $mysqldb > $bakdir/`date +%y-%m-%d`.sql
cd $bakdir ; tar -czf `date +%y-%m-%d`.tar.gz *.sql
#打包後刪除.sql檔案
find . -type f -name *.sql -exec rm -rf {} \;
#備份成功,列印成功並刪除30天以前的備份目錄
[ $? -eq 0 ] && echo "this `date +%y-%m-%d` mysql backup is success"
cd /data/backup/mysql/ ; find . -type d -mtime +30 | xargs rm -rf
echo "the mysql backup successfully"
注意:
1.$uid用於判斷是否為root執行,切換為root使用者時,$uid為0,其他情況不為0。
2.mysql備份語句
/usr/bin/mysqldump -u$mysqlusr -p$mysqlpwd -d $mysqldb > $bakdir/`date +%y-%m-%d`.sql
用法:
mysqldump -uroot -ppassword [database name] > [dump file]
3.建立目錄語句,可以復用,bakdir表示需要建立的路徑
if
[ ! -d $bakdir ] ; then
mkdir -p $bakdir
else
echo this is $bakdir exists...
fi
前端學習 Day04
css cascading style sheet 層疊樣式表1.標籤 之類的標籤 使用方式 直接輸入標籤名 2.類 class class名字 使用方式 輸入點 class名 3.id id 名 使用方式 輸入 id名 一般來說我們寫css檔案的時候用的是第二種選擇器,class名 這是因為id名...
爬蟲學習筆記day04
3.步驟 1.獲取貼吧主頁url 查詢引數 2.xpath 提取頁面中所有帖子的url src 完整的鏈結 href 需要和主url進行拼接 p 5020551987 校花吧 self.url xpath div div a class j th tit href 3.匹配乙個帖子中所有的url 校...
Day04學習心得
本質上是乙個有序的集合 列表的建立 列表名 元素1,元素2 元素與元素之間使用逗號隔開,元素可以是任何型別.列表元素的訪問 列表名 index 和 字串 元組 一樣.列表的組合 list3 list1 list2 返回的是乙個新的列表.字串和元組也一樣 列表的重複 list1 10 其實也是返回乙個...