面试题答案
一键面试set -e
的作用及使用:- 在Bash脚本中,
set -e
命令用于告诉脚本一旦出现任何命令(返回非零退出状态)失败,就立即停止执行脚本。这有助于确保脚本不会在遇到错误的情况下继续执行,从而导致意外的结果。通常将set -e
放在脚本的开头部分。例如:
- 在Bash脚本中,
#!/bin/bash
set -e
# 后续脚本内容,如果命令失败,脚本会立即停止
- 编写带有日志记录的Bash脚本:
#!/bin/bash
set -e
log_file="script.log"
echo "脚本开始执行,时间:$(date)" >> $log_file
# 模拟一个关键操作,例如创建目录
mkdir -p /tmp/test_dir
echo "成功创建目录 /tmp/test_dir,时间:$(date)" >> $log_file
# 模拟另一个关键操作,例如复制文件(假设文件存在)
cp /etc/hosts /tmp/test_dir/hosts_copy
echo "成功复制 /etc/hosts 到 /tmp/test_dir/hosts_copy,时间:$(date)" >> $log_file
echo "脚本执行完毕,时间:$(date)" >> $log_file
在上述脚本中:
- 首先使用
set -e
确保脚本遇到错误时停止执行。 - 定义了一个日志文件
script.log
。 - 在脚本执行的关键步骤,使用
echo
命令将相关信息追加到日志文件中,同时使用$(date)
获取当前时间记录操作发生的时间。mkdir -p
命令用于创建目录,如果目录已存在不会报错。cp
命令用于复制文件,假设/etc/hosts
文件存在,将其复制到/tmp/test_dir
目录下,并记录操作信息到日志文件。