[Bash] Error handling

Error handling in Bash can be managed using exit statuses and traps.

  • Every commands in Bash returns an exit status (0 for success, non-zero for failure).
  • You can use $? variable to get the exist status of the last executed command.

Exit Statuses

#!/bin/zsh

ls /nonexistent_directory
if [ $? -ne 0 ]; then
  echo "Command failed."
fi

Traps

The trap command allows you to catch signals and errors to clean up before the script exits.

trap 'commands' signal

#!/bin/zsh

trap 'echo "Caught SIGINT signal. Exiting..."; exit 1' SIGINT

while true; do
  echo "Press Ctrl+C to exit..."
  sleep 1
done

Explanation:

  • trap 'commands' signal: Defines a trap for a specific signal.
  • SIGINT: The interrupt signal (typically sent by pressing Ctrl+C).

Practice

#!/bin/zsh

check_file() {
  if [ -f "$1" ]; then
    echo "File $1 exists."
  else
    echo "File $1 does not exist."
    return 1
  fi
}

check_file "myfile.txt"
if [ $? -ne 0 ]; then
  echo "Error: File not found."
fi
posted @   Zhentiw  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2021-05-23 [Security] Verifying an Auth0 token
2020-05-23 [Python] Optimizing code with numpy intersect1d, and Set
2017-05-23 [Angular] How to styling ng-content
2016-05-23 [io PWA] Great libraries and tools for great Progressive Web Apps
点击右上角即可分享
微信分享提示