好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 關于bash函數你可能不知道的一些事情(譯)

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

熱門標簽:新余高德地圖標注怎么修改 撫順地圖標注 如何分析地圖標注 高德地圖標注好做嗎 電銷機器人怎么接線路 外呼系統坐席費計入會計哪個科目 達亞電銷機器人官網 大連400電話如何申請 電銷機器人價值


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

function name () {
 ...
}

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

{…}

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

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

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

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

這個函數是一個算術計算式。或者你可以這樣做:

function name () (
 ...
)

這將在子shell中生成函數,而不是在當前環境中執行。

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

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

這個函數將創建一個sleep1函數,該函數將永遠每秒運行一個命令。您可以執行類似sleep1 df -h這樣的操作來監視磁盤的更改。

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

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

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

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

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

總結

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

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

標簽:楊凌 新鄉 湖南 衡水 黃石 遼源 海東 南通

巨人網絡通訊聲明:本文標題《關于bash函數你可能不知道的一些事情(譯)》,本文關鍵詞  關于,bash,函數,你,可能,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《關于bash函數你可能不知道的一些事情(譯)》相關的同類信息!
  • 本頁收集關于關于bash函數你可能不知道的一些事情(譯)的相關信息資訊供網民參考!
  • 推薦文章