Shell教程(六):函數、線上說明_Shell

來源:互聯網
上載者:User

函數允許您對分解成更小的,邏輯子部分,然後可以被要求執行各項任務時,它需要一個指令碼的整體功能。

使用函數來執行重複性的任務,是一個很好的方式來建立代碼的重用。代碼重用是現代物件導向編程的原則的重要組成部分。

Shell函數是類似於其他程式設計語言中的子程式,過程和函數。 建立函數:

聲明一個函數,只需使用以下文法:

function_name () { 
   list of commands
}

函數名 function_name,這就是你將使用它從其他地方在你的指令碼調用。函數名必須遵循括弧內,後括弧內的命令的列表。 例如:

以下是使用函數簡單的例子:

#!/bin/sh
 
# Define your function here
Hello () {
   echo "Hello World"
}
 
# Invoke your function
Hello

當你想執行上面的指令碼,它會產生以下結果:

$./test.sh
Hello World
$
參數傳遞給函數:

你可以定義一個函數,它接受參數,而調用這些函數。將這些參數代表$1,$2,依此類推。

以下是一個例子,我們傳遞兩個參數Zara和Ali ,然後我們捕獲和列印這些參數函數。

#!/bin/sh
 
# Define your function here
Hello () {
   echo "Hello World $1 $2"
}
 
# Invoke your function
Hello Zara Ali

這將產生以下結果:

$./test.sh
Hello World Zara Ali
$
從函數的傳回值:

如果你執行一個exit命令從一個函數內部,其效果不僅是終止執行的功能,而且Shell 程式中調用該函數。

如果你不是想,只是終止執行該函數,再有就是退出來的一個定義的函數。

根據實際情況,你可以從你的函數返回任何值,使用返回的命令,其文法如下:

return code

這裡的代碼可以是任何你選擇這裡,但很明顯,你應該選擇你的指令碼作為一個整體的背景下是有意義的或有用的東西。 例子:

下面的函數返回一個值1:

#!/bin/sh
 
# Define your function here
Hello () {
   echo "Hello World $1 $2"
   return 10
}
 
# Invoke your function
Hello Zara Ali
 
# Capture value returnd by last command
ret=$?
 
echo "Return value is $ret"

這將產生以下結果:

$./test.sh
Hello World Zara Ali
Return value is 10
$
嵌套函數:

函數更有趣的功能之一是,他們可以調用本身以及調用其他函數。被稱為遞迴函式調用自身的函數。

經過簡單的例子示範了一個嵌套的兩個函數:

#!/bin/sh
 
# Calling one function from another
number_one () {
   echo "This is the first function speaking..."
   number_two
}
 
number_two () {
   echo "This is now the second function speaking..."
}
 
# Calling function one.
number_one

這將產生以下結果:

This is the first function speaking...
This is now the second function speaking...
從提示的函數調用:

你可以把常用功能 .profile 的定義,這樣他們就會每當登入,在命令提示字元下,您可以使用它們。

或者,你可以在一個檔案中的定義分組為 test.sh,然後通過鍵入當前shell中執行該檔案:

$. test.sh

這樣做的效果造成任何test.sh內定義的函數,可以閱讀在如下定義為當前shell:

$ number_one
This is the first function speaking...
This is now the second function speaking...
$

要刪除從 shell 函數的定義,可以使用unset命令 .f 選項。這是相同的命令來刪除一個變數的定義Shell。

$unset .f function_name

 

 

所有的Unix命令來與一些可選的和強制性的選擇。忘記這些命令的完整文法,這是很常見。

因為沒有人能記得每一個UNIX命令和選項,一直提供線上協助,因為在Unix早期的時候。

Unix的版本的協助檔案,被稱為手冊頁。如果你知道任何命令的名字,但你不知道如何使用它,那麼手冊頁來協助你。 文法

下面是一個簡單的命令來獲得系統工作,而任何Unix命令的細節:

$man command
例子:

現在,你能想象的任何命令,你想要得到的協助。假設你想知道關於pwd ,那麼你只需要使用下面的命令:

$man pwd

上面的命令將開啟一個協助你會給你pwd命令的完整資訊。親自試一試在你的命令提示字元下,以獲得更多的細節

你可以得到完整的細節上man命令本身使用下面的命令:

$man man
手冊頁部分:

手冊頁一般分為部分,一般的man page作者偏好變化。下面是一些較常見的部分:

部分

描述

NAME

Name of the command

SYNOPSIS

General usage parameters of the command.

DESCRIPTION

Generally describes of the command and what it does

OPTIONS

Describes all the arguments or options to the command

SEE ALSO

Lists other commands that are directly related to the command in the man page or closely resembling its functionality.

BUGS

Explains any known issues or bugs that exist with the command or its output

EXAMPLES

Common usage examples that give the reader an idea of how the command can be used.

AUTHORS

The author of the man page/command.

最後,我要說的是手冊頁是一個重要的研究資源和第一途徑,當你需要在Unix系統資訊的命令或檔案。 有用的Shell命令:

現在你知道如何著手,連結後會給你一個最重要和最頻繁使用的Unix Shell命令列表。

如果你不知道如何使用的任何命令,然後使用手冊頁擷取有關命令的完整細節。

這裡是清單 shell - 有用的命令


from: http://www.yiibai.com/shell/what_is_shell.html#

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.