【发布时间】:2018-09-12 05:54:36
【问题描述】:
我的 Ubuntu 机器每次醒来并进入睡眠状态时都会运行这个脚本。
#!/bin/sh
if [ "${1}" == "pre" ]; then
# Do the thing you want before suspend here, e.g.:
echo "we are suspending at $(date)..." > /home/albin/stuff/suspend_test
elif [ "${1}" == "post" ]; then
# Do the thing you want after resume here, e.g.:
echo "...and we are back from $(date)" >> /home/albin/stuff/suspend_test
else
echo ".2..neither pre or post . $1 . $(date)" >> /home/albin/stuff/suspend_test
fi
这可以在输出文件中找到:
.2..neither pre or post . pre . tis 11 sep 2018 20:44:42 CEST
.2..neither pre or post . post . tis 11 sep 2018 20:45:06 CEST
.2..neither pre or post . pre . tis 11 sep 2018 22:12:52 CEST
.2..neither pre or post . post . ons 12 sep 2018 06:55:21 CEST
.2..neither pre or post . pre . ons 12 sep 2018 06:55:22 CEST
.2..neither pre or post . post . ons 12 sep 2018 06:55:43 CEST
.2..neither pre or post . pre . ons 12 sep 2018 07:13:28 CEST
.2..neither pre or post . post . ons 12 sep 2018 07:14:00 CEST
我查看了多个关于如何编写 bash 条件的指南,但没有发现任何问题。 $1 变量可用,但在 if 语句中被忽略
【问题讨论】:
-
echo "$1"显示什么?顺便说一句,为什么你将它标记为 bash 而你的脚本在 shebang 行中有#!/bin/sh? -
是的,这就是问题所在,以为我在使用 sh 时使用的是 bash