Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Shell脚本:如果系统时间等于给定时间,则触发命令_Linux_Bash_Shell - Fatal编程技术网

Linux Shell脚本:如果系统时间等于给定时间,则触发命令

Linux Shell脚本:如果系统时间等于给定时间,则触发命令,linux,bash,shell,Linux,Bash,Shell,我对shell脚本非常陌生。 如果作为命令行参数的给定时间等于系统时间,则脚本应触发命令,否则应等待(轮询)给定时间 我从最基本的开始,但我只停留在这里:-( 当我执行脚本时: /script.sh:第5行:055:未找到命令 poll for time 谢谢你的帮助。我认为以上只是一个小的语法错误,而不是: if ($now == $cur) 您可能需要执行以下操作: if [ $now -eq $cur ] #very basic comparison here, you may wan

我对shell脚本非常陌生。 如果作为命令行参数的给定时间等于系统时间,则脚本应触发命令,否则应等待(轮询)给定时间

我从最基本的开始,但我只停留在这里:-(

当我执行脚本时:

/script.sh:第5行:055:未找到命令

poll for time


谢谢你的帮助。

我认为以上只是一个小的语法错误,而不是:

if ($now == $cur)
您可能需要执行以下操作:

if [ $now -eq $cur ]  #very basic comparison here, you may want to have a
                      #look at the bash comparisons
更新 你能把变量改成

$cur=$(date +%H%M)
如果输入不是由您提供的,您应该删除前面的空间
$now

now=$(echo $now | sed 's/\s//g') #this removes the spaces in the input

我认为以上只是一个小的语法错误,而不是:

if ($now == $cur)
您可能需要执行以下操作:

if [ $now -eq $cur ]  #very basic comparison here, you may want to have a
                      #look at the bash comparisons
更新 你能把变量改成

$cur=$(date +%H%M)
如果输入不是由您提供的,您应该删除前面的空间
$now

now=$(echo $now | sed 's/\s//g') #this removes the spaces in the input

您可以在特定时间使用以下工具运行程序:

crontab -e


要运行
命令
@14 PM(通过示例)

您可以在特定时间使用以下命令运行程序:

crontab -e


要运行
命令
@14pm(通过示例)

您所描述的问题似乎正是crontab设计用来处理的问题,从“Cron由crontab(Cron表)文件驱动,该文件是一个配置文件,指定按照给定计划定期运行shell命令。”


下面是一个简单的例子,它相对来说是简单的,但应该足以确定它是否满足您的需要。

您描述的问题似乎正是crontab设计用来处理的问题,从“Cron由crontab(Cron表)文件驱动,该文件是一个配置文件,指定按给定计划定期运行的shell命令。”

这是一个简单的示例,它相对来说是简单的,但应该足以确定它是否满足您的需要。

使用以下代码

如果[$now==$cur]

使用以下代码


如果[$now==$cur]

你知道在给定的时间可以触发命令吗?你是在谈论
cron作业
?检查这里。是的,我是在谈论cron作业,就像你的问题@Edouard的另一个POV一样,谢谢:-)你知道在给定的时间可以触发命令吗你是在谈论
cron作业
?检查这里。是的,我说的是cron-jobs,就像你的问题@Edouard的另一个观点一样,谢谢:-)如果我使用
if[$now-eq$cur]
,我会得到
/script.sh:line 5:[:missing
”,“
为时间投票
,我不知道为什么?你在
之间留了一个空格吗[
$now
?我使用了您建议的语法,它反映了错误:
/script.sh:line 5:[:missing
]`我的意思是,如果小时值小于10,您是否将从命令行获取由
\s
填充的值?如果使用
如果[$now-eq$cur]
,我将得到
/script.sh:line 5:[:missing
]`轮询时间,我不知道为什么?您是否在
[
$now
之间留了一个空格?我使用了您建议的语法,它反映了错误:
/script.sh:第5行:[:missing
]“`我的意思是,如果小时值小于10,您是否要从命令行获取由
\s
填充的值?谢谢,它可以完成此项工作,但计算epoch后的秒数不方便用户使用。:-(谢谢,它可以完成此项工作,但计算epoch后的秒数不方便用户使用。:-(