我在使用bash脚本逐行读取文件时遇到问题。这是脚本:
#!/bin/bash
file="cam.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"
以下是cam.txt
:
192.168.0.159
554
554
这是输出:
Loop: 192.168.0.159
Loop: 554
Loop: 554
After: 554
可能是什么问题?
答案 0 :(得分:0)
您的代码让我相信您希望每个行都在一个变量中。
试试这个脚本(我知道这可以更轻松,更漂亮,但这是一个简单易读的例子):
#!/bin/bash
file="cam.txt"
while read -r line
do
printf 'Line: %s\n' "$line"
current=$line
last=$current
secondlast=$last
printf 'Loop: %s %s %s\n' "$current" "$last" "$secondlast"
done < $file
printf 'After: %s %s %s\n' "$current" "$last" "$secondlast"
更简单的版本:
{ read -r first; read -r second; read -r third; } <cam.txt
printf 'After: %s %s %s\n' "$first" "$second" "$third"