以下為 tk.Tk().register() 的參數說明, %d:Type of action (1 for insert, 0 for delete, -1 for focus, forced or textvariable validation) %i:index of char string to be inserted/deleted, or -1 %P:value of the entry if the edit is allowed %s:value of entry prior to editing %S:the text string being inserted or deleted, if any %v:the type of validation that is currently set %V:the type of validation that triggered the callback (key, focusin, focusout, forced) %W:the tk name of the widget 這邊我們只使用 %P 參數,其它參數就不在此篇介紹,有興趣的人可以去試試其它參數的功用。
本篇介紹 VS Code 文字轉小寫(lowercase)的方法,在 VS Code 選取好文字後按快捷鍵 Ctrl+Shift+p (Windows 與 Linux 適用,Mac 快捷鍵是 CMD+Shift+p) 然後輸入 lower 找到 Transform to Lowercase 按下 enter 就可以將選取文字轉小寫了。
本篇 ShengYu 介紹 Shell Script function 函式寫法,腳本寫多了自然有很多邏輯是重複的,這時候就可以用 function 將這些重複邏輯抽取出來放在一個函式裡,提昇程式碼的重複利用性,另一方面是邏輯太複雜時,適時地包裝成函式能夠提昇程式的易讀性,在多人開發的環境下很能夠體會這件事。
以下的 Shell Script function 函式用法與範例將分為這幾部分,
Shell Script function 函式基本寫法
Shell Script function 傳遞參數
Shell Script function 回傳值
Shell Script function 回傳字串
以下就開始介紹 Shell Script function 函式寫法吧!
Shell Script function 函式基本寫法
Shell Script 最簡單的 function 函式寫法如下,每個函式名稱前面有個 function 關鍵字表示這邊是函式,
shellscript-function.sh
1 2 3 4 5 6 7
#!/bin/bash
functionmyfunc() { echo"hello world" }
myfunc
輸出如下,
1
hello world
沒有寫 function 關鍵字也可以,
shellscript-function-2.sh
1 2 3 4 5 6 7
#!/bin/bash
myfunc() { echo"hello world" }
myfunc
Shell Script function 傳遞參數
Shell Script function 要傳遞參數的用法如下,用 "$1" 來取出第一個參數,用 "$2" 來取出第二個參數,依此類推,
shellscript-function-3.sh
1 2 3 4 5 6 7 8 9 10 11 12
#!/bin/bash
functionmyfunc1() { echo"myfunc1 $1" }
functionmyfunc2() { echo"myfunc2 $1$2" }
myfunc1 "aaa" myfunc2 "aaa""bbb"
輸出如下,
1 2
myfunc1 aaa myfunc2 aaa bbb
Shell Script function 回傳值
Shell Script function 用 return 關鍵字來回傳值,return 只能回傳數字,$? 代表 function 的回傳值,
shellscript-function-4.sh
1 2 3 4 5 6 7 8
#!/bin/bash
functionmyfunc() { return 5 }
myfunc echo Return value is $?
輸出如下,
1
Return value is 5
根據上述例子,我們可以來作個加法的函式,然後傳回結果值,範例如下,
shellscript-function-5.sh
1 2 3 4 5 6 7 8 9 10 11 12 13
#!/bin/bash
functionmyadd() { return $(($1+$2)) }
myadd 3 4 retval=$? echo"Return value is $retval"
myadd 6 8 retval=$? echo"Return value is $retval"
輸出如下,
1 2
Return value is 7 Return value is 14
Shell Script function 回傳字串
基本上 Shell Script function 是無法用 return 關鍵字來回傳字串的,但是可以透過其它方式來回傳字串,方法如下,
shellscript-function-6.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
#!/bin/bash
functionmyfunc1() { echo"myfunc1: hello world" }
functionmyfunc2() { local retval="myfunc2: hello world" echo"$retval" }
val1=$(myfunc1) echo"val1=$val1"
val2=$(myfunc2) echo"val2=$val2"
輸出如下,
1 2
val1=myfunc1: hello world val2=myfunc2: hello world