定時修改本機ip的指令碼

2021-06-25 10:52:06 字數 1194 閱讀 3469

因為測試需要,要寫乙個定時修改本機ip的程式,聽說用shell編寫比較簡單明瞭,所以用shell寫了(本人第一次用shell程式設計)。

#!/bin/bash 

while true

doip_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命令看了一下它們的屬性:

原來,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.

網路程式設計 C 修改本機ip位址

昨天學會了程式設計實現獲取本地網絡卡資訊,今天再接再礪學會了修改本機ip位址。其實原理很簡單就是用c 呼叫一下dos命令而已,不得不說,dos命令實在是太強大了,當然聽說還有種修改登錄檔的方法,不過沒有試驗過,所以放上呼叫dos命令修改本地ip位址的 include include include ...

修改IP位址的cmd指令碼

echo off cls color 0a echo ip位址更改小工具 set ip 192.168.1.1 set mask 255.255.255.0 set gateway 192.168.1.0 set name 本地連線 echo.echo 自動更改ip 請按 1 echo.echo 手...

如何程式設計實現修改本機的IP位址DNS伺服器等設定

在這裡需要使用乙個cmd命令。就叫 netsh 具體的使用方法見 url 我將這些內容總結一下,以便於以後使用 1 修改本機ip位址 並指定掩碼 netsh inte ce ip set address 本地連線 static 192.168.1.15 255.255.255.0 192.168.1...