簡體   English   中英

從子外殼腳本中的功能退出到父外殼腳本

[英]exit from a function in child shell script to parent shell script

我正在使用bash腳本,試圖通過返回狀態代碼從子shell腳本中的功能退出到父shell腳本。

Script1.sh
echo "hello script1"
. ./script2.sh
echo $?

Script2.sh
status()
{
    echo "status"
    return 1
}
status
echo "Hello shell2"

該腳本打印“狀態”和“ Hello shell2”,但是我想不打印“ Hello shell2”而從script2.sh的狀態功能退出到script1.sh。

我已經檢查了堆棧溢出中的一些問題,這些討論都是關於從子腳本返回父級而不是從子函數返回父級的。

在此先感謝,索曼

您無法指定要返回多少級“向上”,但是您可以響應呼叫的退出狀態。 只需讓status返回當前status ,並且由於您正在尋找文件,因此將對status調用更改為

status || return

如果status退出狀態為非零,則這將導致源腳本返回到父級。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM