编写一个shell脚本,当早上运行时,打印Good morning,下午运行时,打印 GoodAfternoon

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编写一个shell脚本,当早上运行时,打印Good morning,下午运行时,打印 GoodAfternoon相关的知识,希望对你有一定的参考价值。

编写一个shell脚本,当早上运行时,打印Good morning,下午运行时,打印 GoodAfternoon,晚上运行时,打印 Good Evening,并提示按任意键继续。

参考技术A now=`date`
tim=`echo $now | awk 'gsub(" ","\\n") print $4' | awk 'gsub(":","\\n") print $1'`
if (($tim >= 6 && $tim < 12))
then
   str="Morning"
elif (($tim >= 12 && $tim <16))
then
   str="Afternoon"
else
   str="Evening"
fi

echo "Good $str, Now it is $now !"

追问

不是说Linux里要用 -gt 来比较大小吗 是输入输出重定向,我之前用[ "$tim" -ge 6 -o "$tim" -le 12 ]这个显示错误。如果按你的程序把(())改成了[ ]也会错误。(())和[ ]有什么区别 $tim 加双引号和不加双引号一样么

追答

应该需要将6与12也加上引号就可以了,没机器试,你试一下吧

来自:求助得到的回答本回答被提问者和网友采纳
参考技术A 你是要在console输出还是要用GUI输出?前者好处理,直接用crontab指定时间点运行脚本,这样就可以在console端输出;如果要GUI,那就复杂多了,需要先实现一个显示信息的窗口。

当两者都在运行时,如何将消息从一个 shell 脚本发送到另一个 shell 脚本?

【中文标题】当两者都在运行时,如何将消息从一个 shell 脚本发送到另一个 shell 脚本?【英文标题】:How to send a message from one shell script to another shell script when both are running? 【发布时间】:2021-08-27 19:01:31 【问题描述】:

我在后台运行了 3 个 shell 脚本。 Shell 脚本 1 打印一条消息“Hello 1”。 shell 脚本 2 和 3 也在后台运行。我给 shell 脚本 1 发出了 kill 命令。现在我在 shell 脚本 2 中使用 pgrep 命令来知道脚本 1 没有运行。

当它们都已经在后台运行时,如何从脚本 2 通知脚本 3?一旦脚本 2 通知脚本 3,它应该开始打印“Hello 3”。这是我必须完成的全部任务。

【问题讨论】:

谷歌“命名管道” 最简单的解决方案是平面文件或命名管道,尽管对于其中任何一个,您还需要了解如何解决并发问题(例如,研究flock);如果您有一个(RDBMS)数据库可供(简单)使用,您可以利用 RDBMS 的内置锁管理来序列化“共享”表/行上的读/写;变得更复杂......考虑使用排队系统......然后是共享内存(尽管此时您可能正在谈论专门的(编译)编程) 我是一个完整的初学者。你说的所有这些术语对我来说都是新的。 进程间通信并不完全是一个“初学者”主题,所以......你是如何想出这个特定的任务/练习的?这是家庭作业吗? SO 不是寻找(类似于课堂)有关进程间通信的指导的正确位置;在interprocess communications 上的谷歌搜索带来了很多点击(比如wikipedia article,它可以作为学习上述主题的起点 【参考方案1】:

信号是 Unix /Linux 系统使用的最古老的进程间通信方法之一。它们用于向一个或多个进程发送异步事件信号。

pgrep 检测到您要查找的条件时,您可以从script2script3 发送信号。

看看

help kill

help trap

【讨论】:

以上是关于编写一个shell脚本,当早上运行时,打印Good morning,下午运行时,打印 GoodAfternoon的主要内容,如果未能解决你的问题,请参考以下文章

[无穷b''问题,运行shell脚本通过烧瓶

Linux学习总结(76)—— Shell 脚本日志技巧

Linux学习总结(76)—— Shell 脚本日志技巧

linux shell脚本有编译器吗?每次都是运行后提示很多错误啊,能在编写的时候提示错误吗?

从 Xcode 运行时,Shell 脚本不会完全执行

信号捕捉trap及其在shell中的用法