案例一:忽略中断 (同时按下 “ctrl” 键和 “c” 键) 信号
trap '' INT
案例二:设置 EXIT 信号
end() {
echo "This script is over"
}
trap end EXIT
(补充:这里以将 EXIT 信号设置为 echo “This script is over” 为例)
trap '' INT
end() {
echo "This script is over"
}
trap end EXIT
(补充:这里以将 EXIT 信号设置为 echo “This script is over” 为例)
1) declare、typeset 和 local 的作用都是声明脚本中的变量
2) local 只能用在函数内部
3) declare、typeset 和 local 的选项一样
declare <OPTION> <NAME1>=<VALUE1> <NAME2>=<VALUE2> ......
1) -g 指定要声明的变量为全局变量而不是局部变量
2) -I 给变量赋值时将值转化为小写
3) -u 给变量赋值时将值转化为大写
continue 的作用是在 for、while 等循环中,跳过这次操作直接进入下一个循环
return 的作用是退出函数
exit 的作用是当此脚本正在运行时退出此脚本
# dirname -- "$( readlink -f -- "$0"; )";
# dnf install at
# systemctl enable --now atd
# at now +3 minutes
warning: commands will be executed using /bin/sh
(
补充:这里的 now +3 minutes 代表当前时间 3 分钟后执行。
所有可选的时间选项如下:
1) now +3 minutes,3 分钟后执行
2) now +3 hours,3 小时后执行
3) now +3 days,3 天后执行
4) 15:30,当天 15:30 时执行
5) 15:30 2025-01-01,2025 年 1 月 1 日时执行
6) teatime,当天 16:00 执行
7) midnight 次日凌晨 00:00 执行
)
at> reboot
(补充:这里以执行 reboot 命令为例)
at> <CtrlD> + <D>
at> <EOT>
job 5 at Tue Sep 16 22:37:00 2025
#
# at -l
6 Tue Sep 16 22:37:00 2025 a root
或者:
# atq
6 Tue Sep 16 22:37:00 2025 a root
# at -c 6
(补充:这里以显示第 6 条 at 命令为例,这里的 6 是步骤 4.1 的输出结果)
# vim test.sh
创建以下内容:
#!/bin/bash
at now + 1min << EOF
reboot
EOF
(补充:这里以创建名为 test.sh 在 1 分钟后重启系统为例)