Shell編程遇到的坑

1

shell參數含有空格時,直接傳參會被當成兩個參數,注意加轉義符號

a="1 2"
錯誤: wc $a
正確: wc "$a"

2

java中finally的執行順序,一定會執行(除非整個JVM崩潰了,try中有return也照樣執行)

finally語句是在tryreturn語句執行之後,return返回之前執行
不建議在finally中使用return語句
finally塊的語句在trycatch中的return語句執行之後返回之前執行且finally裏的修改語句可能影響也可能不影響trycatchreturn已經確定的返回值,若finally裏也有return語句則覆蓋trycatch中的return語句直接返回
return只是先把值保存到一個變量中。return的時候是複製了一個變量然後返回,所以之後finally操作的變量如果是基本類型的話不會影響返回值。 但是如果返回值是引用類型的話,因爲指向同一個對象所以還是有影響的。

參見敏敏博客

3

grep進程技巧,不包括自身

ps -ef | grep '[j]ava'
正則中[j]ava==java,但grep對應的進程就是[j]ava,所以不會被結果包含
ps -ef | grep java | grep -v grep

詳解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章