linux shell script中的函式簡介
懂C語言的人, 沒有不知道函式的, 下面我們來看看linux shell script中的函式, 其實也很簡單:
[[email protected] learn_shell]$ ls
a.sh
[[email protected] learn_shell]$ cat a.sh
#! /bin/bash
fun()
{
echo "calling fun"
}
echo "begin ---"
fun # call fun
echo "end ---"
[[email protected] learn_shell]$
[[email protected] learn_shell]$
[[email protected] learn_shell]$
[[email protected] learn_shell]$ ./a.sh
begin ---
calling fun
end ---
[[email protected] learn_shell]$
可以看到, 呼叫的時候, 不需要寫fun(), 而應該用fun, 而且fun函式在定義的時候, 也不需要返回值型別。
再看:
[[email protected] learn_shell]$ ls
a.sh
[[email protected] learn_shell]$ cat a.sh
#! /bin/bash
fun()
{
echo $1
}
echo "begin ---"
fun # call fun
echo "end ---"
[[email protected] learn_shell]$
[[email protected] learn_shell]$
[[email protected] learn_shell]$
[[email protected]ost learn_shell]$ ./a.sh good
begin ---
end ---
[[email protected] learn_shell]$
可以看到, 呼叫fun的時候, 沒有傳遞引數, 所以fun中實際並不能訪問到$1
那行, 我們來傳一下引數:
[[email protected] learn_shell]$ ls
a.sh
[[email protected] learn_shell]$ cat a.sh
#! /bin/bash
fun()
{
echo $0
echo $1
}
echo "begin ---"
fun "$1" # call fun
echo "end ---"
[[email protected] learn_shell]$
[[email protected] learn_shell]$
[[email protected] learn_shell]$
[[email protected] learn_shell]$ ./a.sh
begin ---
./a.sh
end ---
[[email protected] learn_shell]$ ./a.sh good
begin ---
./a.sh
good
end ---
可見, 引數傳遞成功。
最後, 我們來看看return, 注意return 0表示成功:
[[email protected] learn_shell]$ ls
a.sh
[[email protected] learn_shell]$ cat a.sh
#! /bin/bash
fun()
{
return 0
}
echo "begin ---"
if fun
then
echo good
else
echo bad
fi
echo "end ---"
[[email protected] learn_shell]$
[[email protected] learn_shell]$
[[email protected] learn_shell]$
[[email protected] learn_shell]$ ./a.sh
begin ---
good
end ---
[[email protected] learn_shell]$
linux shell script函式就是這麼簡單, 你想任性一點, 那也可以。
相關推薦
linux shell script中的函式簡介
懂C語言的人, 沒有不知道函式的, 下面我們來看看linux shell script中的函式, 其實也很簡單: [[email protected] learn_shell]$ ls a.sh [[email protected] l
如何在 Linux Shell 程式設計中定義和使用函式
函式是一段可複用的程式碼。我們通常把重複的程式碼放進函式中並且在不同的地方去呼叫它。庫是函式的集合。我們可以在庫中定義經常使用的函式,這樣其它指令碼便可以不再重複程式碼而使用這些函式。 呼叫函式 在 Shell 中呼叫函式和呼叫其它命令是一模一樣的。例如,如果你
linux shell script程式之選擇結構簡介
很多人都是先學習C/C++語言, 然後再學習shell script的。 如果大家有一點點程式設計基礎, 那麼就很容易理解所謂的順序、選擇和迴圈。順序結構其實沒什麼好說的, 之前早就接觸過了, 在本文中, 我們來介紹一下選擇結構。 雖然簡單, 但還是要熟練正
linux shell script 進階篇(1)--如何打造功能強大的函式?
函式不管在那個程式語言中都有舉足輕重的地位,在linux shell script中當然也不例外,下面我們就一起學習如何打造出功能強大的函式。 1.如何在script中建立一個函式,可以用以下兩種方式: A. function name { commands } B.
Linux shell script 的 關閉echo -e 在shell指令碼中輸出 “-e”
第一次寫 script指令碼 按照鳥哥的hello world 的程式寫了一下: #!/bin/bash # Program: # This program shows "hello World!" in your screen. #History: # 2015/07/1
Shell Script 中 "$()" ," ${}" Learning
subst 輸入 理解 def 而已 var 區別 都是 date shell中$(( )) 與 $( ) 還有${ }的區別 http://blog.chinaunix.net/uid-14351756-id-2820651.html $( ) 與 ` ` (反引號)
學習Linux shell指令碼中連線字串的方法
這篇文章主要介紹了Linux shell指令碼中連線字串的方法,如果想要在變數後面新增一個字元,可以用一下方法: 程式碼如下: $value1=home $value2=${value1}"=" echo $value2 把要新增的字串變數新增{},並且需要把$放到外面。 這樣輸出的結果
shell script中執行sql語句,返回結果中文亂碼問題——在企業開發中的解決方案
問題描述 有一個需求,需要編寫一個指令碼向遠端資料庫拉取資料並生成一個檔案。在編寫完成並執行後,發現檔案中的中文為亂碼。 指令碼中的查詢命令如下所示: QUERY_CMD="mysql -h${HOST} -u${USER} -p${PWD} -sBN " SQL="SELECT
shell script中執行sql語句,返回結果中文亂碼問題
問題描述 有一個需求,需要編寫一個指令碼向遠端資料庫拉取資料並生成一個檔案。在編寫完成並執行後,發現檔案中的中文為亂碼。 指令碼中的查詢命令如下所示: QUERY_CMD="mysql -h${HOST} -u${USER} -p${PWD} -sBN " SQ
Linux Shell指令碼中單引號(‘)和雙引號(“)的區別
在Linux作業系統上編寫Shell指令碼時候,我們是在變數的前面使用$符號來獲取該變數的值,通常在指令碼中使用”$param”這種帶雙引號的格式,但也有出現使用’$param’這種帶引號的使用的場景,首先大家看一段例子: [[email protected] ~]# name=TekTe
shell指令碼中函式的呼叫
函式 : 把一個功能封裝起來,使用時直接呼叫函式名,這樣的指令碼好處:模組化,程式碼可讀性強,擴充套件性方便函式的定義 在shell 中有兩種定義函式的語法格式,分別為: 函式名() { 命令序列 }
Linux shell程式設計中的判斷條件
-b file 若檔案存在且是一個塊特殊檔案,則為真 -c file 若檔案存在且是一個字元特殊檔案,則為真 -d file 若檔案存在且是一個目錄,則為真 -e file 若檔案存在,
Linux Shell筆記之函式
1.建立函式 #!/bin/bash function func1 { function關鍵字建立函式 echo "this is func1" } func2() { 接近其它語言形式的函式 echo "th
Linux shell指令碼中呼叫另一個shell(exec、source、fork)
最近在研究yarn的原始碼,在看到YarnChild的啟動指令碼時,看到啟動的時候用到了shell中得exec命令,比較好奇為什麼使用exec,網上找了一下這個命令和類似命令的使用方法,原文地址:http://qujunorz.blog.51cto
linux shell 自定義函式(定義、返回值、變數作用域)介紹
inux shell 可以使用者定義函式,然後在shell指令碼中可以隨便呼叫。下面說說它的定義方法,以及呼叫需要注意那些事項。 一、定義shell函式(define function) 語法: [ function ] funname [()] { act
linux——shell變數及函式
shell變數 1.變數定義: 變數即在程式執行過程中它的值是允許改變的量,變數是用一串固定的字元來標誌不固定的值的一種方法,變數是一種使用方便的佔位符,用於引用計算機記憶體地址,該地址可以儲存scripts執行時可更改的程式資訊。在she
Linux Shell-awk中輸出單引號(')
1 場景 在shell指令碼中,單引號‘'’是一個特殊字元,特別是當使用awk命令輸出單引號,即使使用/\'/轉義都無法輸出。 2 分析 嘗試使用單引號的八進位制編碼來替代它進行輸出: awk -F ':' '{print "test.sh \047"$1"\047;
shell script中的 ${a}和$a有什麼區別?
最近碰到這個問題, 差點踩坑, 來記錄一下, 看看: #!/bin/bash echo $9 $10 echo $9 ${10} 看一下執行結果: xxxxxx$ .
Linux shell指令碼中執行命令結果賦值給變數&&echo輸出變數是否包含換行符的問題
Linux shell指令碼中執行命令結果賦值給變數&&echo輸出變數是否包含換行符的問題 echo $ret 和 echo "$ret" 區別: 如果是echo $ret,輸出結果為一行,沒有換行符 如果是echo "$ret",輸出結果為多行,有換行符
linux shell script總結
在一些linux系統管理和自動化測試中經常需要寫一些shell指令碼,所以這裡總結一下主要的規則,便於以後編寫時查閱。 shell的開頭必須以 #!/bin/bash開頭,表明是使用/bin/bash來解釋指令碼的執行。 shell的註釋用# 可以使用so