退出命令在显示服务信息后无法退出 bash shell?

Exit command can't exit bash shell after showing a service info?

如此简单的 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不执行?如何触发?
我在终端上的 expection:show 关于 cron.service 的信息并退出 show.sh 脚本。
我的 show.sh 完成了一半,只需在终端上显示有关 cron.service 的信息。
一个长脚本自动化一个工作是有意义的,上面两行是显示整个脚本状态的最后一步。

--no-pager传给systemctl,如下:

systemctl --no-pager status cron

否则,systemctl 会运行 less(或类似的程序),直到按下 q 才会退出;因此,控制权不会直接交还给您的脚本。


在我们的姊妹网站上查看相关问题Unix & Linux at Can I prevent service foo status from paging its output through less?