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

it_*_*ure 3 bash exit systemctl

如此简单的 bash 脚本仅包含两行。

cat show.sh
systemctl status cron
exit  0 
Run Code Online (Sandbox Code Playgroud)

在终端中使用 root 执行它。

bash  show.sh
Run Code Online (Sandbox Code Playgroud)

有关 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)
Run Code Online (Sandbox Code Playgroud)

为什么show.sh不是退出状态,添加一个点击q会退出show.sh,为什么exit 0不执行?如何触发?
我的期望:在终端上显示有关 cron.service 的信息并退出 show.sh 脚本。
我的 show.sh 完成了一半,只需在终端上显示有关 cron.service 的信息。
一个很长的脚本自动化一个工作是很有意义的,上面两行是显示整个脚本状态的最后一步。

Cha*_*ffy 6

传递--no-pagersystemctl,如下:

systemctl --no-pager status cron
Run Code Online (Sandbox Code Playgroud)

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


请参阅我们的姊妹网站Unix & Linux上的相关问题:我可以阻止service foo status通过分页其输出吗less