定时修改本机ip的脚本

因为测试需要,要写一个定时修改本机ip的程序,听说用shell编写比较简单明了,所以用shell写了(本人第一次用shell编程)。

#!/bin/bash 

while true

do

ip_last=$((($RANDOM%255)+1))

echo now ip is: 192.168.1.$ip_last

ifconfig eth0 192.168.1.$ip_last

sleep 10s

done
以上是运行通过的脚本代码。


编写过程遇到的问题:

1.一开始,第一行我写成:#!/bin/sh,结果执行时出现:

 arithmetic expression: expecting primary: "(%255)+1"                        (出错大概是因为/bin/sh不支持$RANDOM,而把它当作了普通的变量吧)

第一行的#!,是说明该脚本是在什么shell下面运行的,并且以该shell环境来执行脚本。

我用ls -l命令看了一下它们的属性:


可以看出/bin/sh指向了dash,百度一下它们俩的区别:

原来,Debian和Ubuntu中,/bin/sh默认已经指向dash,这是一个不同于bash的shell,它主要是为了执行脚本而出现,而不是交互,它速度更快,但功能相比bash要少很多,语法严格遵守POSIX标准。

bash(Bourne Again shell)是Bourne shell的扩展,与Bourne shell完全向后兼容,并且在Bourne shell的基础上增加、增强了很多特性。

详情可以看看:Dash与Bash的语法区别


2.括号问题

对于取随机数部分,起初我是写成:

ip_last=$(($RANDOM%255)+1)

执行的时候出现:

Syntax error: Missing '))'

不知道为什么还要加多一层括号。可能这是比较低级的问题,只是我刚学习,还没弄明白吧...


3.睡眠时间

表达方式可以是:

sleep 1      睡眠1秒
sleep 1s    睡眠1秒
sleep 1m   睡眠1分
sleep 1h    睡眠1小时


over.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值