【问题标题】:OpenWRT ASH scriptOpenWRT ASH 脚本
【发布时间】:2012-11-01 10:51:17
【问题描述】:

我正在尝试编写一个 ASH 脚本以在我的 OpenWRT 路由器上运行。

我已经安装了 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 .

这似乎在 echo 开始时丢弃了密码并将密码设置为空白。

有什么想法我在这里做错了吗?

【问题讨论】:

    标签: bash openwrt ash


    【解决方案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`
    

    【讨论】:

      猜你喜欢
      • 2019-04-09
      • 1970-01-01
      • 2016-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-26
      • 1970-01-01
      相关资源
      最近更新 更多