shell學習筆記(一)
1、第一行必須以#!/bin/bash
#!表示腳本使用後面的解釋器解釋執行
2、echo 打印輸出
例如 echo "hello world" > aa.txt
3、接收參數
#!/bin/bash
name=$1
age=$2
sex=$3
echo "name:$name;age:$age;sex:$sex"
運行效果:
4、接受用戶輸入的參數
#!/bin/bash
read -p "please input your name:" name
echo "my name is $name"
read :等待用戶輸入,類似於java裏面的scanner
-p:提示信息
5、判斷if/then /elif/else/fi
elif等同於else if
if 必須要以fi結束,否則會報錯
例如:根據一個人的年齡判斷他是少年,中年還是老年(這裏就假設1~20是少年 21~60是中年 60十以上就是老奶年)
#!/bin/bash
read -p "please input your age:" age
if [ $age -lt 0 ]; then
echo "age is incorrect"
else
if [ $age -lt 20 ]; then
echo "younger"
elif [ $age -lt 60 ]; then
echo "adult"
elif [ $age -lt 120 ]; then
echo "older"
else
echo "age is incorrect"
fi
fi
附表
1、字符串判斷
str1 = str2 當兩個串有相同內容、長度時為真
str1 != str2 當串str1和str2不等時為真
-n str1 當串的長度大於0時為真(串非空)
-z str1 當串的長度為0時為真(空串)
str1 當串str1為非空時為真
2、數字的判斷
int1 -eq int2 兩數相等為真
int1 -ne int2 兩數不等為真
int1 -gt int2 int1大於int2為真
int1 -ge int2 int1大於等於int2為真
int1 -lt int2 int1小於int2為真
int1 -le int2 int1小於等於int2為真
3、文件的判斷
-r file 用戶可讀為真
-w file 用戶可寫為真
-x file 用戶可執行為真
-f file 文件為正規文件為真
-d file 文件為目錄為真
-c file 文件為字符特殊文件為真
-b file 文件為塊特殊文件為真
-s file 文件大小非0時為真
-t file 當文件描述符(默認為1)指定的設備為終端時為真
-e file 文件是否存在 test -e filename
-S file 文件是否存在,且為Socket文件
-p file 文件是否存在,且為FIFO(pipe)文件
-u file 文件是否存在,且具有SUID屬性
-g file 文件是否存在,且具有SGID屬性
-k file 文件是否存在,且具有 Sticky bit 屬性
-s fie 文件是否存在,且為 非空白文件
4、復雜邏輯判斷
-a 與
-o 或
! 非
shell學習筆記(一)