Android內(nèi)核——Shell腳本備忘

script——不需要編譯的程序文件

可以在腳本中調(diào)用Linux命令。


獲取輸入

  1. 執(zhí)行腳本時(shí)用戶的輸入:$n,代表輸入中的第n個(gè)參數(shù)。
    #!/bin/bash echo $1 echo $2 echo $3
    執(zhí)行:$./me i love you
    輸出:
    i
    love
    you
  2. 將前一個(gè)腳本的輸出作為該腳本的輸入
  3. 腳本函數(shù)的參數(shù)

變量定義

所有的變量都是字符串,可直接賦值,賦值語句中不能有空格。
引用變量時(shí):在變量前加$符號(hào),并用雙引號(hào)包含以避免引用混淆。
#!/bin/bash
A=b
All=all
echo "$A"ll
echo $All


條件判斷

#!/bin/bash
if  [ "$1" = "normal" ]
then 
    echo "this is normal case"
elif  [ -z "$1" ]
then
    echo "no input, ignal..."
fi

~if的[后必須有空格


while []...do... done語句

#!/bin/bash
echo "please use add or delete or exit"
ACTION="default"
while [ -n $ACTION ]
do
    read ACTION
    case $ACTION in
        add)
            echo "add somebody"
            ;;
        delete)
            echo "delete somebody"
            ;;
        exit)
            echo "complete"
            break
            ;;
        *)
            echo "invalidate action, please re-enter"
            ;;
    esac
done

for循環(huán)

Bash中的for循環(huán)類似于java中的foreach語句,一般與in聯(lián)合使用,用于才能夠某個(gè)集合中取出元素并對(duì)其進(jìn)行操作。
#!/bin/bash
for X in 1 2 3 4 5 hello
do
echo $X
done
~顯示in集合中的所有元素,in集合——in語句后緊跟的目標(biāo)集合。
#!/bin/bash
for X in ls
do
echo basename $X
echo dirname $X
done
uname
uname用于顯示操作系統(tǒng)的內(nèi)部名稱。
#!/bin/bash
#rename files without ext name to txt name
#author:Yuandan Kerr
for X in ls
do
Base="basename $X"
if [ -z echo $Base | grep "\." ]
then
mv $Base $Base.txt
echo $Base
fi
done


函數(shù)

#!/bin/bash
stract()
{
    OUT="$1"" ""$2"
    return 0 
}

stract2()
{
    echo "$1"" ""$2"
    return 3
}

A="bird"
B="mouse"

OUT=""
stract $A $B 
echo $OUT
OUT2=`stract2 $A $B`
echo $?
echo $OUT2

定義函數(shù)的特點(diǎn):

  • 不需要定義參數(shù),在函數(shù)實(shí)體中直接使用$n代表輸入的第n個(gè)參數(shù)。
  • return返回的是函數(shù)執(zhí)行完畢的退出值,OUT賦值結(jié)果是函數(shù)體中echo "$1"" ""$2"輸出的結(jié)果。
  • OUT2='echo "$1"" ""$2"' -> 調(diào)用函數(shù)時(shí),要想獲得函數(shù)的輸出,并且賦值給某個(gè)變量,則函數(shù)的執(zhí)行必須包含在``符號(hào)之間。
  • $3 - > 獲得函數(shù)的返回值而不是輸出。
    輸出結(jié)果:
    bird mouse
    3
    bird mouse

常用內(nèi)置符號(hào)常量

  • $@ -> 代表全部參數(shù),test a b c -> "a","b","c"三個(gè)字符串
  • $* -> 全部參數(shù),test a b c -> "a b c"一個(gè)字符串
  • $# -> 參數(shù)的個(gè)數(shù)
  • $? -> 上一個(gè)命令的返回結(jié)果
  • $$ -> 當(dāng)前命令所在的進(jìn)程號(hào)(PID)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容