编写一个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
检测到您要查找的条件时,您可以从script2
向script3
发送信号。
看看
help kill
和
help trap
【讨论】:
以上是关于编写一个shell脚本,当早上运行时,打印Good morning,下午运行时,打印 GoodAfternoon的主要内容,如果未能解决你的问题,请参考以下文章