ls: 2011*: 没有那个文数蠢件或目录
$cd test
$list=(2011_2 2011_3)for i in ${list[*]}do cp $i ../薯指陪逗歼done
$cd ..
$ls 2011*
2011_2 2011_3
#如果符合要求,请及时点采纳。
#!/bin/bash
servers="abc123 das 222"
for server in$servers
do
echo$server
done
2、遍历字符串列表、用空格分隔:
#!/bin/bash
for server in a b c
do
echo$server
done
3、遍历参数列表:
#!/bin/bash
for arg in $*
do
echo$arg
done
4、遍历文件目录:
#!/bin/bash
for i in ~/*.sh
do
echo$i
cat$i
done
注:$i是整个目录和文件,for in语句也可以与早扰橘` `和$( )配合使用,例如:
#!/bin/bash
for i in $(ls~/*.sh)
do
echo$i
cat$i
done
扩展资料:
LInux shell之(for in)用法总结
一、语法
for 变量名 in 列表 do 程序段(command) done
注意1:是变量名而不是$变量!
注意2:列表可以做文章!
二、应用
第一类:数字性循环-->seq在in后面的应用
#!/bin/bash
#也是产生等差数列-->默认是1
for i in $(seq 1 10)
#产生的是一个字符串,默认IFS是以空格隔开!
do
echo $(expr $i \* 3 + 1)
#主要是复习:expr乘法的特殊用法!-->空格隔开
done
补充:产生[1,10]的自然数-->{}在in后面的应用
total=0
#全局变量for i in {1..100} #".."表示连续,默认也是IFS为空格隔开
do
((total+=i))
doneecho -e "total is:${total}"
#多行注释
<<COMMENRfor i in mysql_{0,1,4,12}sql
#多个文件
do
echo $i
samtools view -c $i
doneCOMMENT
第二类:字符性循环
最原始的
#!/bin/bash
#使用列表for循环显示周一到周日对应的英文-->学习日期的英文
for day in Monday Tuesday Wednesday Thursday Friday Saturday Sunday
do
echo "$day"
done
变量的类型
#!/bin/bash
list="Linux Java C++ Python"
for
i in $list
do
echo -e "Language is ${i}"
done
cat
在in后面的应用-->逐行读取文件的内容(默认是IFS),所以不是逐行打印。
#!/bin/bashfor
in $(cat 日志颜色.sh)
#注意:pwd当前目录下的文件
do
echo $i
done
第三类:路径查找
ls在in后面的命令是-->读取李晌当前pwd下的文件(广义上)。
#!/bin/bash
for i in `ls`
#ls可以结合统配符应用
do
echo $i is file name\!
#注意:\的应用
done
用通陆团配符读取目录(无命令)
for
file in ~/*
#一级目录下的内容-->并不递归显示
do
echo $file is file path \!
#${file}代表的是文件的全路径
done
通过脚本传参
#!/bin/bash
#回忆1:统计脚本参数的个数echo "argument number are $#"!
#回忆2:参数的内容-->此处可以换成$@来测试!
echo
"the input is $*"
#循环执行
for argument in "$*"
do
echo
"$argument "
done
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)