如此简单的一个Bash脚本,只包含两行代码。
cat show.sh
systemctl status cron
exit 0
在终端中以root权限执行它。
bash show.sh
在终端上显示有关cron.service的所有信息。
cron.service - Regular background program processing daemon
Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: ena
Active: active (running) since Sat 2019-08-10 06:51:18 EDT; 13h ago
Docs: man:cron(8)
为什么show.sh没有退出状态,添加一个单击q
将退出show.sh,为什么exit 0
没有执行?如何触发它?
我的期望是在终端上显示有关cron.service的信息并退出show.sh脚本。
我的show.sh已经完成一半,只显示终端上有关cron.service的信息。
一个长脚本自动化作业是有意义的,以上两行是显示整个脚本状态的最后一步。
systemctl
完成之后,才会运行exit
。如果systemctl status cron
正在等待你按下q
,那么,这就是你的答案。 - Charles Duffyexit 0
行。如果没有它,脚本将以最后一个运行的命令的状态退出(也就是默认行为是echo "$?"
),这是有用的:它会通过systemctl
的退出状态,让你的脚本调用者知道结果。 - Charles Duffyexit "$?"
,而不是echo "$?"
,当然。) - Charles Duffy