是正則表達式的字符判斷
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信平臺小程序開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了龍泉驛免費建站歡迎大家使用!
if [[ $i =~ ^[0-9]+$ ]] echo 1
1、^是匹配字符串開始的意思,[0-9]只要不是數(shù)字都不要。
2、~ +的意思的^[0-9]的范圍里匹配一次以上+ $是匹配結(jié)束符。
touch -t "201109021200.00" tempfile
使用引號內(nèi)的時間戳在當前目錄建立一個叫tempfile的文件
find -name "*VIRTUALID*" -newer tempfile -exec cp {} /home/wbft/luo \;
擴展資料
Shell就是一個命令行解釋器,它的作用就是遵循一定的語法將輸入的命令加以解釋并傳給系統(tǒng)。它為用戶提供了一個向Linux發(fā)送請求以便運行程序的接口系統(tǒng)級程序,用戶可以用Shell來啟動、掛起、停止甚至是編寫一些程序。
Shell本身是用戶使用Linux的橋梁。Shell既是一種命令語言,又是一種程序設(shè)計語言(就是你所說的shell腳本)。作為命令語言,它互動式地解釋和執(zhí)行用戶輸入的命令;作為程序設(shè)計語言,它定義了各種變量和參數(shù),并提供了許多在高階語言中才具有的控制結(jié)構(gòu),包括循環(huán)和分支。
它雖然不是 Linux系統(tǒng)內(nèi)核的一部分,但它調(diào)用了系統(tǒng)內(nèi)核的大部分功能來執(zhí)行程序、創(chuàng)建文檔并以并行的方式協(xié)調(diào)各個程序的運行。
表示指定當前的命令輸出格式:
例如:
date +%Y%m%d ???????//顯示前天年月日
date +%Y%m%d --date="+1 day"??//顯示前一天的日期
date +%Y%m%d --date="-1 day" ?//顯示后一天的日期
date +%s ?//從 1970 年 1 月 1 日 00:00:00 UTC 到目前為止的秒數(shù)(時間戳)
題主你好,
先講個題外話, 我們在執(zhí)行腳本時, 有些命令是在當前shell中被執(zhí)行的, 有些命令需要fork()當前shell得到一個子shell,然后在子shell中執(zhí)行相應(yīng)的命令.
回到正題, 在對shell腳本調(diào)試時, 每條被跟蹤執(zhí)行的語句前面都至少有一個+, 你可以理解為, 如果在語句前只看到了1個" + "號, 表示該條語句是在你執(zhí)行腳本的那個shell中被運行的; 如果你在語句前看到了2個" + "號, 則表示,該條語句是從你運行腳本的shell中fork()得到一個新的子shell,然后在這個子shell中運行的; 當然這個" + "號的數(shù)量不只2個, 理論上可以有無數(shù)個, 下面給你舉個前面有3個" + "號的例子:
上面語句, 從左到右的echo分別在當前shell中執(zhí)行, 子shell中執(zhí)行,孫shell中執(zhí)行
寫在最后: " + "號其實讀取的是linux中變量PS4的值:
所以我們可以自己改變變量PS4的值, 然后去調(diào)試shell腳本,就會看到每個被追蹤語句的開頭顯示的都是我們自定義的符號了:
可以看到, 除了我們設(shè)置變量PS4的語句使用的是系統(tǒng)默認的PS4變量值" + ", 之后被追蹤執(zhí)行的語句開頭已經(jīng)變成了我們自定義的符號" 6 "了.
希望可以幫到題主, 歡迎追問.