我想在启动时运行bash脚本。但是我有一个错误。我的脚本出了什么问题?当我从命令行发送字符串时,我没有收到任何错误。这是bash脚本中变量的问题吗?我分享的代码正在处理我的其他项目。
任何人都可以帮助我吗?
脚本
#!/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
}
答案 0 :(得分:0)
首先(或许应该是评论)&#34;我有一个错误&#34;通常是一个糟糕的描述;你应该添加错误。 最明显的错误是:
file="ipcam.txt"
这将在当前目录中查找ipcam.txt
。它可能位于您测试脚本的目录中,但在启动时运行脚本时可能不在目录中。解决方法是将完整的路径名(/etc/ipcam.txt
或放在何处放置)放在脚本中。