欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

shell腳本中set?-e選項(xiàng)作用范圍小結(jié)

 更新時(shí)間:2023年06月22日 08:36:16   作者:fc34235  
本文主要介紹了shell腳本中set?-e選項(xiàng)作用范圍小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

編寫shell腳本沒多久,對(duì)于其許多命令的具體用法還不太熟悉。最近剛好有需求,就嘗試用腳本去實(shí)現(xiàn)。其中就有用到set -e選項(xiàng)。

在用這個(gè)命令之前,也查過其功能,描述比較簡(jiǎn)單:就是當(dāng)命令以非零狀態(tài)退出時(shí),則退出shell。主要作用是,當(dāng)腳本執(zhí)行出現(xiàn)意料之外的情況時(shí),立即退出,避免錯(cuò)誤被忽略,導(dǎo)致最終結(jié)果不正確。這里主要討論的是set -e 選項(xiàng)的作用范圍,創(chuàng)建如下測(cè)試文件:

zhenglei@SzExdroid14:~/study/scripts$ cat run.sh
#!/bin/bash
set -e
test_dir/set.sh
zhenglei@SzExdroid14:~/study/scripts$ cat test_dir/set.sh
#!/bin/bash
set -e
function return1()
{
? ? ? ? return 1
}
function return0()
{
? ? ? ? return 0
}
function returnf()
{
? ? ? ? return $1
}
echo "run start"
return1
if [ $? -ne 0 ];then
? ? ? ? echo "cmd error"
fi
echo "run end !"

單獨(dú)執(zhí)行test_dir/set.sh時(shí)打印如下:

zhenglei@SzExdroid14:~/study/scripts$ ./test_dir/set.sh
run start

即return1語句返回非零,立即退出執(zhí)行。說明set -e 選項(xiàng)有效。接著將test_dir/set.sh中的set -e 屏蔽掉再執(zhí)行run.sh時(shí):

zhenglei@SzExdroid14:~/study/scripts$ ./run.sh
run start
cmd error
run end !

打印和程序流程相符。說明run.sh中set -e選項(xiàng)在set.sh中不起作用??此拼诉x項(xiàng)的只作用于當(dāng)前腳本,不作用于其所調(diào)用的腳本。如此?
將run.sh腳本修改如下,并執(zhí)行:

zhenglei@SzExdroid14:~/study/scripts$ cat run.sh
#!/bin/bash
set -e
. test_dir/set.sh
zhenglei@SzExdroid14:~/study/scripts$ ./run.sh
run start

說明set -e 選項(xiàng)對(duì)set.sh起作用。腳本作為一個(gè)進(jìn)程去描述set -e選項(xiàng)的范圍應(yīng)該是:set -e選項(xiàng)只作用于當(dāng)前進(jìn)行,不作用于其創(chuàng)建的子進(jìn)程。
set -e 命令用法總結(jié)如下:

1. 當(dāng)命令的返回值為非零狀態(tài)時(shí),則立即退出腳本的執(zhí)行。
2. 作用范圍只限于腳本執(zhí)行的當(dāng)前進(jìn)行,不作用于其創(chuàng)建的子進(jìn)程。
3. 另外,當(dāng)想根據(jù)命令執(zhí)行的返回值,輸出對(duì)應(yīng)的log時(shí),最好不要采用set -e選項(xiàng),而是通過配合exit 命令來達(dá)到輸出log并退出執(zhí)行的目的。

注:編譯此文檔時(shí),出現(xiàn)行間距不一致的情況 ,編輯器也沒找到可調(diào)整的菜單。結(jié)果發(fā)現(xiàn)shift + enter / delete 鍵可以比較方便的控制。

到此這篇關(guān)于shell腳本中set -e選項(xiàng)作用范圍小結(jié)的文章就介紹到這了,更多相關(guān)shell set -e作用范圍內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論