最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關于bash函數(shù)你可能不知道的一些事情(譯)

 更新時間:2018年07月11日 14:14:05   作者:程序師  
這篇文章主要給大家介紹了關于bash函數(shù)你可能不知道的一些事情,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧


關于bash函數(shù),這里有一些您不知道的東西。通常當你寫一個函數(shù)時,你會這樣做:

function name () {
 ...
}

不是嗎?我知道你會這么做,因為這是所有人寫函數(shù)的方式。這就是我要說的。在bash中

{…}

并不像在JavaScript或c中那樣意味著“函數(shù)的主體”或“函數(shù)的范圍”,它實際上是一個復合命令。你可以做各種稀奇古怪的事情,比如:

function fileExists () [[ -f $1 ]]

不需要那些花括號!者你可以這樣做:

function isEven () (( $1 % 2 == 0 ))

這個函數(shù)是一個算術計算式?;蛘吣憧梢赃@樣做:

function name () (
 ...
)

這將在子shell中生成函數(shù),而不是在當前環(huán)境中執(zhí)行。

或者您可以使用while, if, case, select和for。這里有一個例子:

function sleep1 () while :; do "$@"; sleep 1; done

這個函數(shù)將創(chuàng)建一個sleep1函數(shù),該函數(shù)將永遠每秒運行一個命令。您可以執(zhí)行類似sleep1 df -h這樣的操作來監(jiān)視磁盤的更改。

這些技巧不僅使您的代碼更美觀,還能夠讓您快速的寫出單行bash程序,而且它們也非常有用。如果您需要為您的函數(shù)創(chuàng)建一個臨時環(huán)境,并臨時更改變量或shell選項,那么它將特別有用。

這是我在代碼中找到的一個例子:

function caseInsensitiveMatch () (
 shopt -s nocasematch
 ....
)

在這里,函數(shù) caseInsensitiveMatch在一個子shell中執(zhí)行,它能設置nocasematch選項,它的作用域就是這個函數(shù)。對于IFS和其他變量,您通常需要臨時更改。你這樣就不需要保存以前的值,然后恢復它們。

這是我5分鐘的技巧。你可以在bash man頁面中查找復合命令,哪里有所有可能的用法。一旦掌握了這一點,您將開始編寫一些next級別shell代碼。下次見!

總結

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

英文原文:Something you didn't know about functions in bash

相關文章

最新評論

石河子市| 兰州市| 曲沃县| 城固县| 临清市| 大足县| 佛坪县| 乌什县| 丹阳市| 微山县| 兴仁县| 库伦旗| 庄河市| 阿拉善左旗| 新乡县| 亚东县| 阳朔县| 万载县| 宽甸| 阿克陶县| 香河县| 白沙| 内丘县| 马公市| 兴宁市| 栖霞市| 苏尼特左旗| 岑溪市| 祥云县| 梨树县| 绥宁县| 涞水县| 博罗县| 新乡市| 兴安县| 栾川县| 海口市| 甘孜县| 大足县| 珲春市| 汝城县|