在bash中,是否有相当于“错误消息”的东西?
在 Perl 中,您可以使用 die "some msg"
退出并显示错误消息。 bash 中是否有等效的单个命令?现在,我正在使用命令来实现此目的:echo "some msg" &&出口1
In perl, you can exit with an error msg with die "some msg"
. Is there an equivalent single command in bash? Right now, I'm achieving this using commands: echo "some msg" && exit 1
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
你可以很容易地自己推出:
You can roll your own easily enough:
这是我正在使用的。它太小了,无法放入库中,所以我一定已经输入了数百次......
用法:
die 127“语法错误”
Here's what I'm using. It's too small to put in a library so I must have typed it hundreds of times ...
Usage:
die 127 "Syntax error"
这是一个与 Perl 的“die”非常接近的函数(但带有函数名称):
如果内置函数失败,bash 的死亡方式(带有函数名称)
因此,Bash 将所有需要的信息保存在几个环境变量中:
This is a very close function to perl's "die" (but with function name):
And bash way of dying if built-in function is failed (with function name)
So, Bash is keeping all needed info in several environment variables:
是的,你就是这么做的。
您可以使用分号或换行符而不是 &&,因为无论 echo 是否成功,您都想退出(尽管我不确定什么会导致它失败)。
在 shell 中编程意味着使用大量的小命令(一些内置命令,一些小程序)来很好地完成一件事,并将它们与文件重定向、退出代码逻辑和其他粘合剂连接起来。
如果您习惯使用函数或方法完成所有操作的语言,这可能看起来很奇怪,但您已经习惯了。
Yep, that's pretty much how you do it.
You might use a semicolon or newline instead of &&, since you want to exit whether or not echo succeeds (though I'm not sure what would make it fail).
Programming in a shell means using lots of little commands (some built-in commands, some tiny programs) that do one thing well and connecting them with file redirection, exit code logic and other glue.
It may seem weird if you're used to languages where everything is done using functions or methods, but you get used to it.