shell 中的 exec 兩種用法:
1.exec 命令 ;命令代替shell程序,命令退出,shell 退出;比如 exec ls
13.shell script:是利用shell的功能所寫的一個(gè)程序,這個(gè)程序是使用【純文本文件】,將一些shell的語法和命令(含外部命令)寫在里面,搭配正則表達(dá)式、管道命令與數(shù)據(jù)流重定向等功能,以達(dá)到我們所想要的處理目的。注意linux命令大全, shell的重定向語法不屬于程序的命令行參數(shù),這個(gè)命行只有兩個(gè)參數(shù), argv[0]是"./a.out", argv[1]是"0",重定向由shell解釋,在啟動(dòng)程序時(shí)已經(jīng)生效,程序在運(yùn)行時(shí)并不知道標(biāo)準(zhǔn)輸入被重定向了。 shell 是如何執(zhí)行命令解釋的,shell 首先檢查命令是否是內(nèi)部命令,不是的話再檢查是否是一個(gè)應(yīng)用程序,這里的應(yīng)用程序可以是linux本身的實(shí)用程序,比如ls 和 rm,也可以是購買的商業(yè)程序,比如 xv,或者是公用軟件(public domain software),就象 ghostview。
=============================
功能:system()函數(shù)調(diào)用“/bin/sh -c command”執(zhí)行特定的命令,阻塞當(dāng)前進(jìn)程直到command命令執(zhí)行完畢。> cpu資源的時(shí)分復(fù)用進(jìn)程切換:cpu資源的當(dāng)前占用者切換保存當(dāng)前進(jìn)程在pcb(進(jìn)程控制塊)中的執(zhí)行上下文(cpu狀態(tài)),恢復(fù)下一個(gè)進(jìn)程的執(zhí)行上下文。一般大家都是用./your-script-name來執(zhí)行,.意味著當(dāng)前文件夾內(nèi),但是如果僅僅使用. your-acript-name,shell不會(huì)另起一個(gè)進(jìn)程執(zhí)行你的命令,意味著執(zhí)行完你的腳本后,shell就會(huì)退出,你可以在你的機(jī)器上試一下。
system()會(huì)調(diào)用fork()產(chǎn)生子進(jìn)程, 由子進(jìn)程來調(diào)用/bin/sh-c string 來執(zhí)行參數(shù)string 字符串所代表的命令, 此命令執(zhí)行完后隨即返回原調(diào)用的進(jìn)程. 在調(diào)用system()期間sigchld 信號(hào)會(huì)被暫時(shí)擱置,sigint 和sigquit 信號(hào)則會(huì)被忽略。這個(gè)格式的前一部分是對時(shí)間的設(shè)定,后面一部分是要執(zhí)行的命令,如果要執(zhí)行的命令太多,可以把這些命令寫到一個(gè)腳本里面,然后在這里直接調(diào)用這個(gè)腳本就可以了,調(diào)用的時(shí)候記得寫出命令的完整路徑。執(zhí)行過程:system()會(huì)調(diào)用fork()產(chǎn)生子進(jìn)程,由子進(jìn)程來調(diào)用/bin/sh-c string來執(zhí)行參數(shù)string字符串所代表的命令,此命令執(zhí)行完后隨...。
source命令或者".",不會(huì)為腳本新建shell,而只是將腳本包含的命令在當(dāng)前shell執(zhí)行。
lock由于cache size < mem(l3) size,因此總會(huì)有不 夠用替換的時(shí)候,但是某些應(yīng)用場景下,我們不希望 某些讀入cache的line被替換掉,引入了lock命令(通常 是tag的1 bit) 被lock的行不會(huì)在執(zhí)行替換的時(shí)候被別人替換掉。而:smagic命令則是在執(zhí)行替換命令時(shí)強(qiáng)制轉(zhuǎn)換*以及其他一些字符的意義,例如我們執(zhí)行下面的命令:。r命令可以使得vim進(jìn)入替換模式.在這種模式下,我們輸入的每一個(gè)字符都會(huì)替換光標(biāo)下面的字符,直到我們按退出為止.我們還可以指定數(shù)字作為參數(shù)來指明這條命令所要執(zhí)行的次數(shù).(注:這里我做的結(jié)果是r命令可以指定參數(shù)來指明執(zhí)行次數(shù),而r命令則不成)。
exec 3<&0:這個(gè)命令就是將操作符3也指向標(biāo)準(zhǔn)輸入。
另外,這個(gè)命令還可以作為find命令的一個(gè)選項(xiàng),如下所示:
(1)在當(dāng)前目錄下(包含子目錄),查找所有txt文件并找出含有字符串"bin"的行