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
或您放置的任何位置)放入脚本中。
我想要 运行 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
或您放置的任何位置)放入脚本中。