分享shell程式設計中的幾個小技巧

2021-09-22 08:30:25 字數 1444 閱讀 7271

1、列印一些頭資訊

command  <<  dilimiter

…………

dilimiter

以分界符號dilimiter中的內容作為命令的標準輸入

常用在echo命令中,這樣就避免了沒輸出一行就要使用乙個echo命令,同時,輸出格式的調整也相應變得簡單了。

例如:  echo << something_message

**********************

hello, welcome to use my shell script

**********************

something_message

將在螢幕上輸出:

**********************

hello, welcome to use my shell script

**********************

2、利用《的分解符號性質還可以自動選擇選單或實現自動的ftp傳輸

也就是利用分解符號的性質自動選擇選單。

例如: ./menu_choose >>output_file 2>&1 <3、建立乙個長度為0的空檔案

執行 > file_name 命令或 touch file_name 命令。

4、一些常用的shell變數

$# 傳遞到指令碼的引數個數

$* 以乙個單字串顯示所有向指令碼傳遞的引數(可大於9個)

$$ 指令碼執行的當前程序的id號

$! 後台執行的最後乙個程序的id號

$@ 與$#相同,但使用時加引號,並在引號中返回每個引數

$- 顯示shell使用的當前選項

$?  顯示最後命令的退出狀態,0表示無錯誤(這個變數也常常用來列印輸出,在指令碼除錯時標記某個shell命令或某個函式是否正確執行,但是要注意,$?記載的是最近的函式或命令的退出狀態,因此列印時應該立即列印以獲得正確的資訊)

$0的使用

在變數中有一種位置變數$n,用來存放函式呼叫或指令碼執行時傳入的引數,其中$0表示函式名或指令碼名,需要注意的是,這時的指令碼名傳遞的是包含全路徑的指令碼名。從$1-$9表示傳入的第一到第九個引數,這樣的引數表示不能多於九個,如果多於九個,可以使用下面將要提到的shift指令來讀取。

因為$0存放函式名或指令碼名,因此我們可以通過echo $0來輸出呼叫資訊,但是,由於存放的是全路徑名,我們可以利用乙個shell命令來得到指令碼名,basename $0 將得到$0中名字的部分,而與之相反的,dirname $0將得到$0中路徑的部分。

5、shift的運用

用head或tail指令指定查閱的行數

例如:查閱檔案前20行:  head –20 file_name

查閱檔案後10行: tail –10 file_name

git使用的幾個小tips分享

問題3 git如何同步 多個遠端倉庫?本文是我在使用git過程中總結出來的幾個小經驗,能夠解決初學者在使用遠端倉庫,如github gitee等,可能遇到的幾個常見問題。由於本人也在不斷探索中,有新的經驗也會繼續在這裡不定期更新。初學者看到好的專案,一般直接git clone下來。但是對於大型專案,...

sqlserver中,sql程式設計的幾個小常

sqlserver中,sql程式設計的幾個小常 1 取出剛剛插入 刪除 的資料select 欄位名 from inserted deleted 2 對於update實際上是先delete然後再insert所以如果想得到update前後的資料值,應該先從deleted取出,然後從inserted取出 ...

幾個shell程式設計問題的回答

現在把它的問題和我的回答整理如下,請各位大俠指正。1result expr result i result result i result result i 三者有什麼不同?算術計算的話用哪個?前面用result 0定義了變數,後面為什麼不用 result result i的?回答 1 result...