2012-11-01 68 views
1

我想寫一個ASH腳本在我的OpenWRT路由器上運行。OpenWRT ASH腳本

我已經安裝到它nodogsplash,當您第一次嘗試使用路由器進行身份驗證時,它會顯示一個登錄頁面。

nodogsplash帶有一個命令行工具,它允許您更改密碼:

ndsctl password newpassword 

所以我想寫一個劇本,我可以設置爲一個cron作業運行的每天一次改變密碼到新的東西,但我很努力讓它輸出正確。我的腳本大氣壓:

#!/bin/ash 
local randompassLength 
local pass 
randompassLength=8 
pass=</dev/urandom tr -dc A-Za-z0-9 | head -c $randompassLength 
ndsctl password "$pass" 

當我運行此我得到的輸出:

miqM2Ah6Password set to . 

這似乎扔在回波開始時的密碼,密碼設置爲空。

任何想法,我做錯了什麼?

回答

1

你缺少命令替換:

pass=$(</dev/urandom tr -dc A-Za-z0-9 | head -c $randompassLength) 

或使用反引號:

pass=`</dev/urandom tr -dc A-Za-z0-9 | head -c $randompassLength`