【发布时间】:2017-04-16 14:19:51
【问题描述】:
我正在尝试编写一个 bash 脚本,但是有一个问题 - 我在 do-done 之外看不到变量的内容。有什么帮助吗?
#!/bin/bash
file="ip.txt"
while IFS=: read -r f1 f2 f3
do
printf '%s %s %s\n' "$f1" "$f2" "$f3"
done <"$file"
printf '%s %s %s\n' "$f1" "$f2" "$f3"
echo -e "iptables -t nat -A PREROUTING -p tcp --dport $f2 -j DNAT --to-destination $f1:$f3"
输出>
192.168.0.1
2000
1000
iptables -t nat -A PREROUTING -p tcp --dport -j DNAT --to-destination :
【问题讨论】:
-
你能检查你的输出吗?我认为
192.168.0.1 2000 10003 个值在一行上。 -
read在最终读取时将每个变量分配给空字符串。该空值对您的脚本完全可见! (只是不是特别有用)