日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式動(dòng)態(tài)
[導(dǎo)讀]例如,指南庫腳本不會(huì)被意外中斷,但是某些人在運(yùn)行該庫時(shí)會(huì)突然或無意中給您Ctrl +C,這就尷尬了。

trap

例如,指南庫腳本不會(huì)被意外中斷,但是某些人在運(yùn)行該庫時(shí)會(huì)突然或無意中給您Ctrl +C,這就尷尬了。

有沒有辦法讓我們的腳本在碰到ctrl+c時(shí),還能繼續(xù)執(zhí)行,或者收到ctrl+c的終止執(zhí)行的信號(hào)時(shí),告訴執(zhí)行者,此腳本執(zhí)行時(shí)不能被隨意中斷。

有,bash允許內(nèi)容對(duì)一些信號(hào)量捕獲,可以在收到信號(hào)后執(zhí)行指定的操作

信號(hào),用kill或者快捷鍵發(fā)給指定的進(jìn)程,進(jìn)程收到后安裝預(yù)設(shè)的規(guī)則處理,使用kill -l 可以查看系統(tǒng)可用的信號(hào)。

信號(hào)9,15 不可捕獲,這些信號(hào)必須由操作系統(tǒng)處理,否則你寫個(gè)死循環(huán),kill -9 都?xì)⒉涣?,系統(tǒng)就崩了。

常用的快捷鍵信號(hào)

SIGINT,2,ctrl+c

SIGTSTP,18,ctrl+z,暫停

trap 'func "abc"' SIGINT,收到這個(gè)信號(hào)時(shí),執(zhí)行指定的代碼

trap -- SIGINT,刪除信號(hào)追蹤

腳本示例

#! /bin/bash

trap 'func "abc"' SIGINT

trap "echo Goodbye." EXIT

index=0

func() {

echo 'abc', $1

index=$[index+1]

if [ $index -ge 10 ]; then

trap -- SIGINT

fi

}

eval

執(zhí)行一個(gè)字符串,先把字符串中的變量替換為實(shí)際值

pipe="|"; eval ls $pipe wc -l

相當(dāng)于 sh -c "ls $pipe wc -l"

set ls pwd

eval $1 #第一次掃描到$1為ls,第二次執(zhí)行l(wèi)s

exec

執(zhí)行一個(gè)命令,把命令加載到當(dāng)前的bash環(huán)境中執(zhí)行,把當(dāng)前bash的數(shù)據(jù)

所以exec執(zhí)行后,執(zhí)行棧會(huì)返回到當(dāng)前bash的上一層,因?yàn)楫?dāng)前的bash環(huán)境已經(jīng)被exec替換了

# su - user1

$ exec ls

ls執(zhí)行完,會(huì)返回到root的環(huán)境下

time

記錄程序執(zhí)行的時(shí)間

還有一個(gè)time程序,比bash內(nèi)置的time功能要多一點(diǎn),可以用 \time ls,明確使用time程序而非bash的命令

umask

設(shè)置文件或者目錄的權(quán)限掩碼

在一個(gè)目錄里設(shè)置權(quán)限掩碼,那么這個(gè)目錄里面新建的文件的權(quán)限規(guī)則是,目錄:777-umask值,文件,666-umask值

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉