OpenWRT 路由器 bash scipt 问题

OpenWRT router bash scipt issue

我想要 运行 bash 启动时的脚本。但是我有一个错误。我的脚本有什么问题?当我从命令行发送字符串时,我没有收到任何错误。 bash 脚本中的变量有问题吗?我分享的代码正在我的其他项目中使用。

有人可以帮助我吗?

脚本

enter image description here

#!/bin/sh /etc/rc.common
# Example script

START=40

start() {

    file="ipcam.txt"

    while IFS=: read -r xf1 xf2 xf3
    do
        printf 'Loop: %s %s %s\n' "$xf1" "$xf2" "$xf3"
        f1=$xf1
        f2=$xf2
        f3=$xf3
    done < "$file"
    printf 'After: %s %s %s\n' "$f1" "$f2" "$f3"


    echo "script start"
        iptables -t nat -A PREROUTING -p tcp --dport $f2 -j DNAT --to-destination $f1:$f3
}

首先(也许应该是评论)"I have an error" 通常是一个糟糕的描述;您应该添加错误是什么。 最明显的错误是:

file="ipcam.txt"

这将在当前目录中查找 ipcam.txt。它可能在您测试脚本的目录中,但它可能不在脚本启动时 运行 时的目录中。补救措施是将完整路径名(/etc/ipcam.txt 或您放置的任何位置)放入脚本中。