看板 LinuxDev 關於我們 聯絡資訊
#!/bin/sh function func() { local lsh=$1 local rsh=$2 local ret=0 local ret_str="$lsh_$rsh" echo -n ${ret_str} return $ret } $str="0123456789" echo $( echo ${str:2:3}) #印出 234 echo $(func ab cd) # 願望能印出 ab_cd 不好意思,小弟最近在思考,到底要如何把Bash 作到模組化 目前知道,像function 的 傳入參數的觀念, 可以靠$1, $2 與local宣告來達成近似的效果。 不過return 的部份,目前仍然只知道函數只能回傳 數值,而非字串。 是因為我想要讓 Bash 能夠有個模組化的開發, 所以在思考用怎樣的方式, 才能實現函數回傳「字串」的概念。 在想不出來的情況下,在此請教版上各位高手了。 謝謝 一般來說,我自己是想到有兩種辦法可以實現函式回傳字串的概念, 但都不是很好的方法 XD 方法一: 一個是使用全域變數 但我的理解裡, 只知道這方法用下去,我可能自己把Shell Script寫到很大時,會遇到維護上的難度 方法二: 把單一 function 寫成一個檔案,然後透過 var1=$(source callfunc.sh arg1 arg2) var2=$(sh callfunc.sh arg1 arg2) 的方式來達成。 但是這樣子又變成是一個檔案寫一個function了。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.208.148.156 ※ 編輯: milochen 來自: 210.208.148.156 (01/16 21:11)