Welcome to

Linux shell 读取一行


方法一
通过指定IFS--Internal Field Separator,IFS默认情况下是<space><tab><newline>,可以在脚本中设定IFS值
DEMO 1
catt1.txtabcfdcat test_IFS.sh
#! /bin/sh
IFS="c"
for LINE in `cat t1.txt`
do
echo LINEdonesh test_IFS.sh
ab
fd
这里需要读取一行只需将IFS="\n"设置为换行符即可。
DEMO2
catt1.txtabcdIFS cat test_IFS.sh
#! /bin/sh
#IFS="\n"
for LINE in `cat t1.txt`
do
echo LINEdonesh test_IFS.sh
a
b
c
d
设置IFS="\n"
cat test_IFS.sh  #! /bin/sh IFS="\n" for LINE in `cat t1.txt` do     echoLINE
done
sh test_IFS.sh  a b c d 这样就可以达到读取一行的目的了 方法2 利用read命令,从标准输入读取一行,根据IFS进行切分并相应的变量赋值,这里为了我们故意将IFS设置为&,来进行演示 DEMO3cat test_read.sh
#! /bin/sh
IFS="&"
printf "Enter your name, rank, serial num:"
read name rank serno
printf "name=%s\nrank=%s\nserial num=%s" namerank sernosh test_read.sh
Enter your name, rank, serial num:zk&1&123
name=zk
rank=1
serial num=123
所以我们知道read每次是读一行,因此使用read命令就好了
DEMO4
cat readline_1.sh  #! /bin/sh cat t1.txt | while read LINE do     echoLINE
done
shreadline1.shabcdread3readDEMO5cat readline_2.sh
#! /bin/sh
while read LINE
do
echo LINEdone<t1.txtsh readline_2.sh
a b
c d
推荐使用方法3

posted @   懒得写了  阅读(1217)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
TEL-18612699962!
点击右上角即可分享
微信分享提示