加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 返回/退出函数前的popd

发布时间:2020-12-15 21:19:17 所属栏目:安全 来源:网络整理
导读:在bash中,返回/退出函数之前弹出的正确方法是什么?例如, function fn () { pushd ~ /dev/null if [ $1 = $2 ]; then return 0; elif [ $2 = $3 ]; then return 1; else return 2; fi popd /dev/null} 我应该在每次回归前写popd吗?或者,我应该采取另一种方
在bash中,返回/退出函数之前弹出的正确方法是什么?例如,

function fn () {
    pushd ~ >/dev/null
    if [ $1 = $2 ]; then
        return 0;
    elif [ $2 = $3 ]; then
        return 1;
    else
        return 2;
    fi
    popd >/dev/null
}

我应该在每次回归前写popd吗?或者,我应该采取另一种方式吗?

解决方法

为此,我可能会这样做:

fn() {
    pushd ~ >/dev/null
    if [ "$1" = "$2" ]; then
        ret=0
    elif [ "$2" = "$3" ]; then
        ret=1
    else
        ret=2
    fi
    popd >/dev/null
    return $ret
}

这样我就不必在每次返回之前重复“清理”代码.

另一种方法是在子shell中完成工作并将cd放到所需的目录中,尽管子shell无法修改父级的环境(毕竟这是我们想要的一部分).

fn() (
    cd ~
    if [ "$1" = "$2" ]; then
        return 0
    elif [ "$2" = "$3" ]; then
        return 1
    else
        return 2
    fi
)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读