linuxshellfor循环语句
1、利用$@, $#, $*参数或shift移位参数进行循环
2、例1
#!/bin/sh
while [ $# -gt 0 ]; do
echo $1
shift;
done
3、例2
#!/bin/sh
until (($#==0)); do
echo $1
shift;
done
4、例3
#!/bin/sh
for x in $*;do
echo $x
done
5、例4
#!/bin/sh
for x in $@;do
echo $x
done
2. linux shell脚本下使用for循环 输出等边三角形 过任务的 求大神指点
#!/bin/bash
read -p "please input the longs:" long
for((i=1;i<=$long;i++))
do
for((j=$long;j>i;j--))
do
echo -n " "
done
for m in `seq 1 $i`
do
echo -n "+"
done
for((n=1;n<i;n++))
do
echo -n "+"
done
echo ""
done
long为你自己输入的边长,如果有规定长度,把$long改成数就行
3. linux shell for循环怎么写
for I in list; do
statement
done
I 是变量
list是一个表格 如你可以使用一串用括号括起来的数,
也可以使用 命令替换 `seq 1 15` 这个命令忘记了,, 有可能是 `seq 15`
[1..15]
表示1-15的数,,
statement 即要执行的语句
for I in [1..10]; do
echo $I
done
这段for循环的含义就是显示从1~10的所有数字
4. linux shell for 如何循环两个或者多个变量
标准的多个循环嵌套啊,各类程序语言包括shell都这样的。
5. Linux shell 问题 求解
这是表示foo分别取值三次,并且分别打印出 三个值来,具体其他知识拓展如下:
for 命令
重复执行一系列命令在编程中很常见。通常你需要重复一组命令直至达到某个特定条件,比如处理某个目录下的所有文件、系统上的所有用户或是某个文本文件中的所有行。
bash shell提供了 for 命令,允许你创建一个遍历一系列值的循环。每次迭代都使用其中一个值来执行已定义好的一组命令。下面是bash shell中 for 命令的基本格式。
for var in list
do
commands
done
在 list 参数中,你需要提供迭代中要用到的一系列值。可以通过几种不同的方法指定列表中的值。
在每次迭代中,变量 var 会包含列表中的当前值。第一次迭代会使用列表中的第一个值,第二次迭代使用第二个值,以此类推,直到列表中的所有值都过一遍。在 do 和 done 语句之间输入的命令可以是一条或多条标准的bash shell命令。在这些命令中,$var 变量包含着这次迭代对应的当前列表项中的值。
也可以将 do 语句和 for 语句放在同一行,但必须用分号将其同列表中的值分开: for var in list; do 。
1.1.读取列表中的值
for 命令最基本的用法就是遍历 for 命令自身所定义的一系列值。
[ceshi@jerry jghml]$ cat test1.sh
#!/bin/bash
# basic for command
for test in Alabama Alaska Arizona Arknsas California Colorado
do
echo The next state is $test
done
6. 关于linux shell 循环语句的问题
#!/bin/sh
read -p "Input an integer: " num
len=`expr length $num` #计算整数的长度
startPos=1
sum=0
FirstLetter=`expr substr $num 1 1`
[ "${FirstLetter}" = "-" ] && startPos=2 #负数的话从第二位开始输出
while [ $startPos -le $len ]
do
digit=`expr substr $num $startPos 1` #分别取得每一位
echo $digit
let sum+=$digit #累加计算
let startPos+=1
done
echo "sum=$sum"
exit 0
# ===================================
# 上面的推荐答案对于负数有问题,并且会打印很多sum=xx(应该是循环结束才打印的)。
# 为了通用性,我基本都使用符合POSIX标准的语法,没有使用诸如 ${#num}, ${x:pos:lenght}等bash中的特有语法。
7. Linux Shell:Shell循环语句
摘要: Linux , Shell
Shell中常用循环有 for , while
for循环只能用于 固定次数 的循环,因此不能无限循环和用于一些在后台守护进程一直运行的程序,语法语句如下
也可以写成一行,用 ; 分隔
取值列表内元素以空格隔开,如果元素带有空格则用引号包裹起来,例子如下
输出如下,可见循环到最后退出循环,引用变量依旧是最后一个取值列表元素
一行的写法
Shell的for循环也可以采用C语言的写法,注意是 双括号 ,用 分号; 间隔
一个简单例子
while循环语句结合条件测试使用,语法如下
举一个例子
在循环中使用条件测试实现复杂的逻辑,例如
也可以使用&&,||一行完成,省去if,fi
Shell的continue,break语句和Python一样,例子如下
break语句下输出4
continue语句下输出4 6 7 8 9 10
常见结合使用的循环体有 序列 , 数组 , 命令行传参 , 文件目录和文件
序列通过 seq 命令或者 {begin..end..step} 符号进行定义:
结合for循环使用案例
在Shell中使用小括号 () 定义数组,数组遍历使用 [@] 符号,防止元素有空格用双引号包起来,,例子如下
命令行传参遍历使用固定符号 $@ ,如果参数中有空格,用双引号括起来,例子如下
文件遍历使用 ls 命令,可以指定目录,以及通配符匹配
一个双重循环实现,注意 expr表达式中乘号要加转移符
(2)将某目录下大小大于阈值的文件移动到另一个文件
遍历循环一个目录,使用awk语法获得文件大小,将100m以上的文件移动到另一个文件夹
(2)指定开始日期和结束日期完成一个跑批任务
指定一个开始时间和结束时间,while从开始日期一直自增到结束日期循环结束,通过 date -d -01-01 1day' +%Y-%m-%d 自增一天
8. linux中shell编程for循环问题
我试了一下是能行的。
你写好了过后在终端执行有两种方式:
#sh test.sh
or
#./test.sh //需要修改权限,让其能够执行,chmod 777 test.sh
9. Linux Shell awk中怎么调用数组和for循环
echo|awk'
{
array[1]=1
array[2]=2
array[3]=3
array[4]=4
array[5]=5
for(i=1;i<=5;++i){
printarray[i]
}
}'
10. linux远程登陆的shell脚本for循环无结果
我比较认同“ssh之后是远程主机执行的命令
本地变量不起作用”这种说法
你的脚本之所以$aaa能回显,是因为在本地定义了这个变量,但本地没有定义$i这个变量,所以无法显示变量值,把aaa="u1 u2"一块塞<<ff.......ff这个内联重定向数据中去。再试试看。