gpt4 book ai didi

bash - cd 退出时显示错误并退出

转载 作者:行者123 更新时间:2023-12-03 19:49:36 26 4
gpt4 key购买 nike

我想让我的脚本在 cd 命令失败时退出并显示一条消息。我通过执行以下操作进行了尝试:

cd $foo || echo "Error xyz"; exit 1

但是,无论 cd 是否成功,都会调用 exit。当我键入以下内容时,它也不起作用,因为 exit 仅退出子shell:
cd $foo || ( echo "Error xyz"; exit 1 )

如何在不定义函数的情况下实现所需的行为?当然,我可以将 $(pwd) 与 $foo 进行比较,但这可能会导致符号链接(symbolic link)等问题。

最佳答案

您可以使用 { list; } compound command .命令列表在当前 shell 上下文中执行:

cd "$foo" || { echo "Error xyz"; exit 1; }

(注意尾随分号或换行符是必需的。)
bash中最常见的函数定义通常将这个复合命令用于“函数体”:
f() { list; }

虽然, bash函数可以使用其主体的任何复合命令来定义,例如:
f() ( list; )
f() (( $1 > 10 ))
f() [[ $1 != "test" ]]

甚至:
f() for i in {1..10}; do echo $i; done
f() case ... esac

关于bash - cd 退出时显示错误并退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47033419/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com