2 xirurensheng 123 xirurensheng_123 于 2017.09.07 10:28 提问

关于shell脚本for循环

shell脚本中for循环是怎么处理的例如:
#cat a.txt
1 12
2 22
#cat test.sh
#!/bin/bash

for i in awk '{print $0}'
do
echo $i
done
#./test.sh
1
12
2
22
为什么其输出结果不为:
1 12
2 22
主要问的意思是for,in语句其处理数据时候是通过换行分割还是,有特殊的方法对数据进行分割

6个回答

changqing1990
changqing1990   2017.09.21 15:32
已采纳

你想要那种结果只需要:
cat a.txt |awk '{print $0}' 就好了

for 中因为你是使用echo的, 由于echo 是基于行输出,所以就显示4行了

for 是由空格 或者 回车 等都可以作为其间隔!

qq_31618659
qq_31618659   2017.09.07 14:49

awk '{print $0}' for整句就是打印与$0匹配项 请问楼主输出结果是什么
for((i=n;i>=1;i--))
do
echo dfdf
done
一个for递减的写法很容易理解 我感觉上面的执行结果应该就是1 12
2 22

qq_31618659
qq_31618659   2017.09.07 14:51

不好意思那个是我以前弄的测试
n=10
for ((i=n;i>=1;i--))
do
echo $i
done这个是经典例程

qq_31618659
qq_31618659   2017.09.07 14:53

还有for in 语法中in后的不能是变量

xirurensheng_123
xirurensheng_123 在in后边可以使用变量的
11 个月之前 回复
xirurensheng_123
xirurensheng_123   2017.09.07 15:29

@Mygod吴
在in后边可以使用变量的
#cat test.sh
#!/bin/bash
str="1 12 13"
for str_tmp in $str;
do
echo $str
done


changqing1990
changqing1990   2017.09.21 15:18

for i in awk '{print $0}'

或者
str=awk '{print $0}'
for i in $str

注意AAA 不是单引号,而是反引号

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
shell脚本for循环的使用
案例: zhaoweiming@ZJHZ-PS-CMREAD-SV-WYNBTEST03-INT-SD:~/wt20160308/shell> cat hbase.sh  #!/bin/bash tables=(BOOKFANSRANKING BOOKFANSSCOREDETAIL BOOKFANSSCORETOTAL BOOKVICEADMIN USERFANSRANKING USER
shell脚本查看系统中的用户
shell脚本 for循环输出系统用户列表只显示用户列,shell脚本 for循环输出系统用户列表只显示用户列
Shell脚本的基本语法(一) if判断、for循环、while循环和until循环
这次来介绍一下Shell的基本语法: 一、注释        Shell中的注释标志是井号 "#",除了脚本文件第一行的#不是注释之外,其他地方出现#,则说明#开始,到本行的末尾都是注释 二、指定脚本解释器        一般每个Shell脚本文件的第一行都是指定脚本解释器        #!/bin/bash       : 指定本脚本文件使用bash脚本解释器解释执行
shell for循环、循环变量值付给其他shell脚本
本文主要将在shell中如何编写for循环,并将循环变量作为下个shell脚本的参数。
shell脚本----for循环
1.方法1 #!/bin/bash for((i=1;i<10;i++)) do echo $i done 保存为for1.sh 直接sh for1.sh 会报错: Syntax error: Bad for loop variable 解决方法 代码对于标准bash而言没有错,因为Ubuntu为了加快开机速度,用dash代替了传统的bash,是dash在捣鬼
Shell脚本基础20-for循环执行命令-结束篇
本文作为shell脚本基础系列的最后一篇文章,这里做一个练习。如何利用for循环去执行命令。 1. 用for循环去执行不同命令 2.for循环加上if语句打印文件 把脚本文件放到/etc下,然后执行看看效果,然后把脚本中 -f 改成 -d再试试。 结束语: Linux命令基础和shell脚本基础就先到这里,shell脚本需要用实际的工作中的任务去练习编写,才更有提高和更有趣。
手把手教你写shell脚本——shell循环结构
shell脚本之循环结构的学习,通过学习for循环、while循环,switch循环等常用的循环结构及在循环中经常使用的各种比较符号,不如数字的比较的,字符串的比较等,达到快速掌握shell脚本的目的!
linux shell 脚本 之for 循环
如果有人问我linux 好用么?我肯定说 不好用,
Linux shell 用for循环100次的方法
前言循环不管在程序中还是脚本中都需要经常用到,在写shell脚本时,经常需要for进行100次循环。这里谈谈几种从1到100的循环方法。四种方法C语言风格for ((i=1; i<=100; i++)) do echo $i donePython风格(in的使用)for i in {1..100} do echo $i doneSeq的使用注意代码中不是单引号。for i `seq
多线程执行for循环shell脚本
需求:并发检测1000台web服务器状态(或者并发为1000台web服务器分发文件等)如何用shell实现?       方案一:(这应该是大多数人都第一时间想到的方法吧) 思路:一个for循环1000次,顺序执行1000次任务。 实现:       #!/bin/bash start_time=`date +%s` #定义脚本运行的开始时间 for ((i=