Latest web development tutorials

funzione Shell

linux shell può essere funzioni definite dall'utente, allora si può facilmente chiamare negli script di shell.

Definizione Formattare la funzione di shell come segue:

[ function ] funname [()]

{

    action;

    [return int;]

}

spiegazione:

  • 1, può assumere la funzione di divertimento () è definito per essere un divertimento diretta () è definito, senza alcun parametro.
  • 2, possono essere visualizzati parametri di ritorno più: il ritorno di ritorno, in caso contrario, il risultato sarà l'ultimo comando eseguito, in quanto il valore di ritorno. seguito dal valore di ritorno di n (0-255

L'esempio seguente definisce una funzione e chiamata:

#!/bin/bash
# author:本教程
# url:www.w3big.com

demoFun(){
    echo "这是我的第一个 shell 函数!"
}
echo "-----函数开始执行-----"
demoFun
echo "-----函数执行完毕-----"

uscita:

-----函数开始执行-----
这是我的第一个 shell 函数!
-----函数执行完毕-----

La seguente definizione di una funzione con una dichiarazione di ritorno:

#!/bin/bash
# author:本教程
# url:www.w3big.com

funWithReturn(){
    echo "这个函数会对输入的两个数字进行相加运算..."
    echo "输入第一个数字: "
    read aNum
    echo "输入第二个数字: "
    read anotherNum
    echo "两个数字分别为 $aNum 和 $anotherNum !"
    return $(($aNum+$anotherNum))
}
funWithReturn
echo "输入的两个数字之和为 $? !"

Output simile di seguito:

这个函数会对输入的两个数字进行相加运算...
输入第一个数字: 
1
输入第二个数字: 
2
两个数字分别为 1 和 2 !
输入的两个数字之和为 3 !

valore di ritorno della funzione dopo aver chiamato questa funzione tramite $? Si ottiene.

Nota: tutte le funzioni devono essere definite prima dell'uso. Ciò significa che la funzione deve essere posizionato all'inizio dello script finché l'interprete shell quando è stato scoperto, può essere utilizzato. Chiamare la funzione utilizzando solo il suo nome di funzione.


Argomenti funzione

In Shell, è possibile passare parametri a cui viene chiamata la funzione. Nel corpo funzione all'interno, per ottenere il valore di un parametro nella forma di $ n, per esempio, $ 1 per il primo argomento, $ 2 per il secondo parametro ...

Esempio funzione con i parametri:

#!/bin/bash
# author:本教程
# url:www.w3big.com

funWithParam(){
    echo "第一个参数为 $1 !"
    echo "第二个参数为 $2 !"
    echo "第十个参数为 $10 !"
    echo "第十个参数为 ${10} !"
    echo "第十一个参数为 ${11} !"
    echo "参数总数有 $# 个!"
    echo "作为一个字符串输出所有参数 $* !"
}
funWithParam 1 2 3 4 5 6 7 8 9 34 73

uscita:

第一个参数为 1 !
第二个参数为 2 !
第十个参数为 10 !
第十个参数为 34 !
第十一个参数为 73 !
参数总数有 11 个!
作为一个字符串输出所有参数 1 2 3 4 5 6 7 8 9 34 73 !

Si noti che $ 10 non può ottenere un decimo parametri, ottengono il decimo parametri devono $ {10}. Quando n> = 10, è necessario utilizzare $ {n} per ottenere i parametri.

In aggiunta, ci sono diversi parametri per gestire i caratteri speciali:

la manipolazione dei parametri spiegazione
$ # Il numero di parametri passati allo script
$ * In un unico display stringa tutti i parametri passati allo script
$$ L'attuale numero di ID di processo dello script viene eseguito
$! Infine, un processo in esecuzione nel numero di sfondo ID
$ @ * $ Con la stessa, ma quando si utilizzano le virgolette, e ritorna ogni parametro tra virgolette.
$ - Shell visualizza l'opzione corrente per utilizzare lo stesso comando funzione set.
$? Consente di visualizzare lo stato di uscita dell'ultimo comando. 0 indica nessun errore, e qualsiasi altro valore indica un errore.