1. 程式人生 > >shell學習筆記(一)

shell學習筆記(一)

image scanner src 判斷 長度 提示信息 $1 描述 id屬性

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學習筆記(一)