首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Bash嵌套循环行为

Bash嵌套循环行为
EN

Stack Overflow用户
提问于 2017-11-03 03:06:32
回答 1查看 51关注 0票数 0

我有嵌套循环的麻烦。代码如下所示:

代码语言:javascript
运行
AI代码解释
复制
while IFS='' read -r line || [[ -n "$line" ]]; do
    num=0
    for i in $line; do
        eval a_${num}="\"$(echo $i)\""
        echo $a_0
        ((num=num+1))
    done
done < file

文件中有许多行。每一行由16个空格分隔值组成: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

当我读取文件中的每一行时,应该将i的第一次出现设置为变量a_

因此,当我回显这个值时,如果文件中有两个相同的行,那么它应该读取:

代码语言:javascript
运行
AI代码解释
复制
01
01

然而,这就是所发生的事情:

代码语言:javascript
运行
AI代码解释
复制
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01

它不是两次回显,而是迭代行中值的两倍-- 16+16时间。我在这里做错什么了?

EN

回答 1

Stack Overflow用户

发布于 2017-11-06 00:53:30

过了一段时间,这段代码(几乎)解决了我的问题:

代码语言:javascript
运行
AI代码解释
复制
file=`cat files.txt`

# read the lines in the file and store every line in variable as "line"
while read -r line; do
# declare an array variable from every space separated value in "line"
  declare -a arr=`echo $line`
# set counter to zero
  num=0
# now loop through the above array
  for i in ${arr[*]}; do
# set a variable as "a_$num" that equals the current value in array
  eval a_${num}="'\"$(echo $i)\"'"
# incremenate "num" by 1 
  ((num=num+1))
  done
# echo the first value in current line
  echo $a_0
done <<< $file

现在的结果应该是:

代码语言:javascript
运行
AI代码解释
复制
01
01

……但出于某种原因,它只得到了一次回应,尽管有两句话:

代码语言:javascript
运行
AI代码解释
复制
01

不过我还是可以用剧本的。如果有人能解决最后一点,那就太好了!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47094298

复制
相关文章
控制台打印图形_前端控制台打印
一、在控制台输出以星号打印的三角形 思路:在外部使用循环语句执行5次每次打印1行,每行的内容分别为空格和星号,每行空格缩进的数量为5减去所在行数,星号的数量是所在行数的2倍减1。在内部使用循环语句首先打印空格,然后打印星号”*”,对应的打印次数用循环次数控制,打印星号之后就可以换行。
全栈程序员站长
2022/11/01
2.6K0
控制台打印图形_前端控制台打印
console控制台打印自定义样式图案
实现是伪实现,还得基于别人的程序把图片转换成字符化以后自己再转换成console展示。以下描述实现方式。
Diuut
2022/11/22
1.6K0
console控制台打印自定义样式图案
ASP.NET Core 控制台日志(Console)打印时间
ASP.NET Core 在 Console 输出日志最开始是没有时间的,曾经在 github 看过有讨论个这个问题:https://github.com/aspnet/Logging/issues/483 最终这个 Feature 在 ASP.NET Core 3.0 中被加入。
晓晨
2021/01/21
1.7K0
容器打印日志到控制台阻塞的排障
今日生产环境发现有些容器停止响应了,但是容器没有死,docker exec -it <container-name> /bin/bash也能正常使用。
颇忒脱
2019/03/13
1.3K0
uniapp 微信小程序 控制台警告和错误处理
微信小程序默认开启了索引功能,但是因为我们没有配置索引策略,导致出现了这么一个警告
很酷的站长
2022/12/30
2.1K0
uniapp 微信小程序 控制台警告和错误处理
Python 日志打印之自定义logger handler
logging.config.dictConfig(config)函数内部调用了DictConfigurator(config).configure(),而configure函数内DictConfigurator部,根据incremental,handlers等当前日志配置,被执行的分支代码中,会调用
授客
2021/01/29
3.5K0
spring boot设置日志打印为控制台输出和文件输出
日志打印 sources里建logback-spring.xml <?xml version="1.0" encoding="UTF-8"?> <configuration>
不吃紫菜
2022/08/18
1.1K0
简单实用log4j实现日志打印到控制台 原
之后在maven项目的main下面的resources下新建一个名为log4j.properties的文件,里面的内容如下所示:
克虏伯
2019/04/15
6.2K0
OpenFeign打印日志
1.日志级别 2.配置 2.1增加config /** * @author dencycheng * @date 2020/11/26 9:59 下午 */ @Configuration pub
DencyCheng
2020/12/01
1.7K0
OpenFeign打印日志
如何打印日志
日志打印对研发来说,是很有必要的, 如何打印好日志,让日志能反映出处理流程,让日志能反映出问题所在,这个很重要,不好的日志,会加大研发排查问题的难度,过多的日志也会对研发造成干扰,如何打印日志,成了研发必须要掌握的技能。
王小明_HIT
2023/08/09
5400
如何打印日志
聊聊日志打印与日志审计
​ 日志对于我们日常排查bug,记录用户执行记录,审计等都是至关重要的。本文将给大家介绍一下博主开发的,在日常工作中会用到的日志切面与日志审计组件。
柏炎
2022/08/23
2.4K0
聊聊日志打印与日志审计
pandas:解决groupby().apply()方法打印两次
对于以下dataframe执行dataframe.groupby(['name', 'course']).apply(lambda x: test(x)) 操作
Bo_hemian
2020/09/09
1.1K0
日志ILog(文件日志/控制台日志/控件日志/网络日志)
日志组件是NewLife系列组件最早最基础,同时也是流血流泪最多的一个模块,它的底蕴定能感动每一个用户!
JusterZhu
2022/12/07
1K0
日志ILog(文件日志/控制台日志/控件日志/网络日志)
[PHP] 自定义错误处理
关闭掉默认的错误提示,注册自己的错误提示 Application.php <?php class Application{ public static function main(){
唯一Chat
2019/09/10
4610
[PHP] 自定义错误处理
tcp工作原理三次握手_tcp三次握手为什么不是两次
SYN同步报文段,尝试和对方建立连接,JavaSocket API中,客户端new Socket内核就会发起这样的SYN请求 SYN这个标志位为1,表示是一个同步报文段 我能听见(ACK),你能听见我吗(SYN) 建立连接的过程,相当于通信双方各自给对方发送SYN,再各自给对方发送ACK中间的ACK和SYN和二为一,于是最后就是“三次握手”
全栈程序员站长
2022/09/27
3690
tcp工作原理三次握手_tcp三次握手为什么不是两次
SpringDataElasticsearch控制台打印查询语句
本文由 小马哥 创作,采用 知识共享署名4.0 国际许可协议进行许可 本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名 最后编辑时间为: 2022/12/15 22:40
IT小马哥
2022/12/16
2.6K0
SpringDataElasticsearch控制台打印查询语句
Ijkplayer打印FFMpeg日志
在打印Ijkplayer播放日志的过程中,在ijkplayer中日志可以正常输出。但是涉及到FFMpeg的日志,则无法输出
None_Ling
2018/10/24
2.5K0
idea打印断点日志
Log: "Breakpoint hit" message(日志 "断点命中"消息)
阿超
2022/08/21
1.6K0
idea打印断点日志
tcp握手为什么是三次不是两次_tcp的三次握手
大家好,又见面了,我是你们的朋友全栈君。 参考文章 Why do we need a 3-way handshake? Why not just 2-way 大部分网络博客的错误解读 首先需要
全栈程序员站长
2022/11/10
2970
tcp握手为什么是三次不是两次_tcp的三次握手
点击加载更多

相似问题

错误处理程序不显示自定义错误日志

138

React:在调用useEffect之前,会打印两次控制台日志

12

dwr日志错误处理程序

10

不打印控制台日志

30

Rails控制台日志-如何自定义控制台中打印的内容

33
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文