人生不過是一場旅行,你路過我,我路過你,各自向前,各自修行。
阿新 • • 發佈:2018-12-14
簡例 demo
#!/bin/bash
cd /usr/local
ls
cd -
語法(syntax)
1. 自定義語法 (Custom syntax)
#!/bin/bash
var1=hello
var2=world
echo $var1 $var2
echo $USER `s home is $HOME
2. 系統語法 (system syntax)
#!/bin/bash
echo $HOME
echo $USER
3. 返回值語法(return value syntax)
#!/bin/bash
dt=`date`
dirs=`ls /usr/local`
echo $dt
echo $dirs
表示式(expression)
1. 命令表示式(command expression)
#!/bin/bash
if mkdir test
then
echo create dir success
else
echo failed
fi
2. 數學表示式(math expression)
[ $var1 -gt/-lt/-eq/-ge/-le/-ne $var2 ]
-gt >
-lt <
-ge >=
-le <=
-eq =
-ne !=
#!/bin/bash
var1=2
var2=3
var3=$[ $var1 + $var2 ]
if [ $var1 -gt $var3 ]
then
echo $var1 is bigger then $var3
else
echo $var1 is smaller then $var3
fi
3. 字串表示式(string expression)
判斷字串是否一致 [ string1 =/!= string2 ]
#!/bin/bash
var1=abc
var2=def
if [ $var1 = $var2]
then
echo $var1 is $var2
else
echo different
fi
4. 檔案判斷表示式(File judgement expression)
- [ -d/-f/-e/-r/-w/-x filename ] 檔案判斷對應屬性如下:
-d is dir
-f is file
-e is exists
-r is readable
-w is writeable
-x is excuteable
- 檔案判斷 [ file1 -nt/ot file2 ]
判斷file1比file2 新/舊
- -nt file1 is newer
- -ot file1 is older
if [-d ./test]
then
mkdir test
else
echo dir2 is not exists
fi
控制結構(control structure)
if
#!/bin/bash
if expression
then
echo 1
echo 2
else
echo 3
echo 4
fi
for
- bash style
#!/bin/bash
for $i in value1 value2 value3
do
echo $i
done
example:
#!/bin/bash
for i in A B C D
do
echo $i
done
- C language style
#!/bin/bash
for((variable=init_value;variable<=n;variable++)))
do
echo xxx
echo xxx
done
demo
#!/bin/bash
sum=0
for((i=1;i<=100;i++))
do
sum=$[ $sum + $i ]
done
echo $sum
case
#!/bin/bash
case variable in
value1 1)
echo 1
;;
value2 2)
echo 2
;;
*)
echo 1
echo 2
;;
demo
#!/bin/bash
case $USER in
root)
echo "you are super master" $USER;;
json)
echo -n "you are " $USER;;
*)
echo sorry!
esac
匯出資料庫案例
匯出現有資料庫並刪掉7天以前的資料庫.
#!/bin/bash
filename=`date +%y%m%d`.tar.gz
if [ -f $filename ]
then
echo "file is exists!"
else
mysqldump -uroot -proot yii2basic > /root/test/yii2basic.sql
tar -zcvf yii2basic.tar.gz yii2basic.sql
mv yii2basic.tar.gz $filename
rm -fr yii2basic.sql
echo "mysqldump done!"
fi
old = `date -d '-7 day' + %y%m%d`
if [ -f $old.tar.gz]
then
rm -fr ./$old.tar.gz
fi