Shell程式設計學習Day04

2021-08-18 06:05:10 字數 2044 閱讀 3914

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 其實也是返回乙個...