Hãy xem xét các mã sau đây
ngoài-scope.sh
#!/bin/bash
set -e
source inner-scope.sh
echo $(inner)
echo "I thought I would've died :("
bên trong-scope.sh
#!/bin/bash
function inner() { echo "winner"; return 1; }
Tôi đang cố outer-scope.sh
thoát ra khi có cuộc gọi đến inner()
. Kể từ khi $()
gọi một lớp vỏ phụ, điều này không xảy ra.
Làm thế nào khác để tôi có được đầu ra của một hàm trong khi duy trì thực tế là hàm có thể thoát với mã thoát khác không?