我需要使用“Do / While”循环读取文件 如何以字符串形式阅读内容?
这是我的代码:
cat directory/scripts/tv2dbarray.txt | while read line
do
echo "a line: $line"
done
错误:
test.sh: line 4: syntax error near unexpected token `done'
test.sh: line 4: `done'
答案 0 :(得分:68)
此处没有理由使用cat
- 它不会添加任何功能并产生不必要的过程。
while IFS= read -r line; do
echo "a line: $line"
done < file
要将文件内容读入变量,请使用
foo=$(<file)
(请注意,这会修剪尾随换行符。)
答案 1 :(得分:28)
cat file | while read line
do
echo "a line: $line"
done
编辑:
将文件内容导入var use:
foo="`cat file`"
答案 2 :(得分:1)
这应该有效:
file=path/of/file/location/filename.txt
while IFS= read -r varname; do
printf '%s\n' "$varname"
done < "$file"
答案 3 :(得分:0)
试试吧
while read p
do
echo $p
done < directory/scripts/tv2dbarray.txt
答案 4 :(得分:-2)
使用 php :
php -r "echo file_get_contents('text.txt');"
或使用烟斗:
php -r "echo stream_get_contents(STDIN);" < text.txt
这也有效,文件被视为html(如果没有php标签!):
php text.txt
要观看交互式更改,就像tail -f
一样。 (这里没有节奏,超快......)
php -r "while(true)echo fread(STDIN,'1');" < text.txt