gpt4 book ai didi

bash - Linux Bash Shell自定义错误消息

转载 作者:行者123 更新时间:2023-12-03 07:41:55 24 4
gpt4 key购买 nike

我正在尝试使用以下1个衬里bash shell命令生成自定义错误消息。我没有设置“errorMessage”变量。但是,如果我单独运行该命令,则可以将错误消息捕获到$ errorMessage变量中。 我想念什么?

命令:

[ "errorMessage=$(mkdir -p /path/to/restricted/folder 2>&1)" ] && echo "Something Went Wrong; Error is: ${errorMessage}"

试用版/输出:
$ [ "errorMessage=$(mkdir -p /path/to/restricted/folder 2>&1)" ] && echo "Something Went Wrong; Error is: ${errorMessage}"
Something Went Wrong; Error is:
$ echo $errorMessage

$ errorMessage=$(mkdir -p /path/to/restricted/folder 2>&1)
$ echo $errorMessage
mkdir: cannot create directory `/path': Permission denied

最佳答案

[是名为test的命令;如果未提供指定要运行的单个测试的参数,则默认值为-n(测试字符串是否为空)。此代码正在测试字符串"errorMessage="(可能带有mkdir的stderr后缀)是否为空;由于它包含固定前缀,因此无论是否发出任何错误,它都不会为空为空。

如果要为该变量实际分配一个值,则应如下所示:

errorMessage=$(mkdir -p /path/to/restricted/folder 2>&1) \
|| echo "Something Went Wrong; Error is: ${errorMessage}"

这是在检查 mkdir的退出状态,并且运行 echo应该为非零。

关于bash - Linux Bash Shell自定义错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45474556/

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