shell脚本 #!binbash declare -i ab=0 while(($ab<5)) do echo $ab (($ab++)) sleep 1 done

shell脚本 #!binbash declare -i ab=0 while(($ab<5)) do echo $ab (($ab++)) sleep 1 done,第1张

#!/bin/bash

ab=0

while (($ab < 5))

do

echo $ab

((ab++))

sleep 1

done

1、system(执行shell 命令

相关函数 fork,execve,waitpid,popen

表头文件 #include<stdlibh>

定义函数 int system(const char string);

函数说明 system()会调用fork()产生子进程,由子进程来调用/bin/sh-c

string来执行参数string字符串所代表的命令,此命令执行完后随

即返回原调用的进程。在调用system()期间SIGCHLD 信号会被暂时

搁置,SIGINT和SIGQUIT 信号则会被忽略。

返回值 如果system()在调用/bin/sh时失败则返回127,其他失败原因返回-

1。若参数string为空指针(NULL),则返回非零值。如果system()调

用成功则最后会返回执行shell命令后的返回值,但是此返回值也有

可能为system()调用/bin/sh失败所返回的127,因此最好能再检查

errno 来确认执行成功。

附加说明 在编写具有SUID/SGID权限的程序时请勿使用system(),system()会

继承环境变量,通过环境变量可能会造成系统安全的问题。

例如:

#include<stdlibh>

main()

{

system(“ls -al /etc/passwd /etc/shadow”); //换成/testsh 可执行相关脚本

}

当然也可以用管道或exec函数族来调用shell

##1控制执行时间间隔:使用sleep:

echo hello

sleep 10s #等10秒

echo hello

sleep 10m #等10分钟

echo hello

sleep 10h #等10hour

echo hello

sleep 10d #等10days

##2控制执行时间点:使用crontab

Step 1:

使用命令crontab -e编辑一个定时执行的任务或在/var/spool/cron/crontabs目录下新建一个与自己用户名相同的任务

即:

#每隔一分钟执行一次后台程序tmpmail

/home/milch/tmpmail

顺便提一下crontab中的命令格式:

第一个 表示分钟 (0-59),

第二个 表示小时 (0-23),

第三个 表示月份中的某一天 (1-31),

第四个 表示一年中的某一月 (1-12),

第五个 表示一周中的星期几 (0-6 with 0=Sunday)

实例说明

# crontab -l

# DO NOT EDIT THIS FILE - edit the master and reinstall

# (/tmp/crontab3672 installed on Thu Jan 1 15:55:18 2004)

# (Cron version -- $Id: crontabc,v 213 1994/01/17 03:20:37 vixie Exp $)

0 0-23/6 /usr/bin/webalizer

30 3 /root/fbin/bak-web

#

先前曾提到,crontab 的格式分成六个部分,前五个是时间参数。在上例中你会发现除了数字与英文名称,有使用到符号"",这个符号代表每一单位的意思,譬如 30 3 既代表 30分 3点 每日 每月 星期的每天。

时间的指定,可以是单一的数字,或几个数字用逗号来连接。看下例

30 3,12 /root/fbin/bak-web

其中的第二项为 3,12,这代表 3 以及 12 小时的意思。再来看下例

30 /6 /root/fbin/bak-web

我把第二项改成 /6 这代表每 6 小时,也相当於 6,12,18,24 的作用。此外还有一个区段的做法

30 8-18/2 /root/fbin/bak-web

我把第二项改成 8-18/2 这代表在 8 小时到 18 小时之间每 2 小时,也相当於 8,10,12,14,16,18 的作用。

以上就是关于shell脚本 #!/bin/bash declare -i ab=0 while(($ab<5)) do echo $ab (($ab++)) sleep 1 done全部的内容,包括:shell脚本 #!/bin/bash declare -i ab=0 while(($ab<5)) do echo $ab (($ab++)) sleep 1 done、linux 中实现延迟45分钟后执行命令,写了一段c程序,实现延迟,接下来,该如何执行命令呢,也就是shell、linux shell 问题2等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9730392.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存