WindowsBatch与LinuxShell比较[shell循环实例]
Shell的循环实例:
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->
#
!
/
bin
/
bash
for
i in
1
2
3
4
5
do
echo
"
Welcome $i times
"
done

#
!
/
bin
/
bash
for
i in
$(
seq
1
1
5
)
do
echo
"
Welcome $i times
"
done

#
!
/
bin
/
bash
for
i in {
1
..
5
}
do
echo
"
Welcome $i times
"
done

#
!
/
bin
/
bash
for
((
c
=
1
;
c
<=
5
;
c
++
))
do
echo
"
Welcome $c times
"
done


#
!
/
bin
/
bash
for
i in
$(
ls
);
do
echo
item:
$
i
done



#
!
/
bin
/
bash
for
i in `seq
1
10
`
;
do
echo
$
i
done

#
!
/
bin
/
bash
for
file in
/
etc
/
*
do
if
[
"
${file}
"
==
"
/etc/resolv.conf
"
]
then
countNameservers
=$(
grep -c nameserver
/
etc
/
resolv
.
conf
)
echo
"
Total ${countNameservers} nameservers defined in ${file}
"
break
fi
done

#
!
/
bin
/
bash
FILES
=
"
$@
"
for
f in
$
FILES
do
#
if
.
bak
backup
file exists
,
read next file
if
[ -f
$
{f}
.
bak ]
then
echo
"
Skiping $f file
"
continue
#
read next file and skip cp
command
fi
#
we are hear means no
backup
file exists
,
just
use
cp
command
to
copy
file
/
bin
/
cp
$
f
$
f
.
bak
done


#
!
/
bin
/
bash
COUNTER
=
0
while [
$
COUNTER -lt
10
]
;
do
echo
The counter is
$
COUNTER
let COUNTER
=
COUNTER
+
1
done



#
!
/
bin
/
bash
COUNTER
=
20
until [
$
COUNTER -lt
10
]
;
do
echo
COUNTER
$
COUNTER
let COUNTER-
=
1
done
#
!
/
bin
/
bash
for
i in
1
2
3
4
5
do
echo
"
Welcome $i times
"
done
#
!
/
bin
/
bash
for
i in
$(
seq
1
1
5
)
do
echo
"
Welcome $i times
"
done
#
!
/
bin
/
bash
for
i in {
1
..
5
}
do
echo
"
Welcome $i times
"
done
#
!
/
bin
/
bash
for
((
c
=
1
;
c
<=
5
;
c
++
))
do
echo
"
Welcome $c times
"
done

#
!
/
bin
/
bash
for
i in
$(
ls
);
do
echo
item:
$
i
done


#
!
/
bin
/
bash
for
i in `seq
1
10
`
;
do
echo
$
i
done 
#
!
/
bin
/
bash
for
file in
/
etc
/
*
do
if
[
"
${file}
"
==
"
/etc/resolv.conf
"
]
then
countNameservers
=$(
grep -c nameserver
/
etc
/
resolv
.
conf
)
echo
"
Total ${countNameservers} nameservers defined in ${file}
"
break
fi
done
#
!
/
bin
/
bash
FILES
=
"
$@
"
for
f in
$
FILES
do
#
if
.
bak
backup
file exists
,
read next file
if
[ -f
$
{f}
.
bak ]
then
echo
"
Skiping $f file
"
continue
#
read next file and skip cp
command
fi
#
we are hear means no
backup
file exists
,
just
use
cp
command
to
copy
file
/
bin
/
cp
$
f
$
f
.
bak
done

#
!
/
bin
/
bash
COUNTER
=
0
while [
$
COUNTER -lt
10
]
;
do
echo
The counter is
$
COUNTER
let COUNTER
=
COUNTER
+
1
done


#
!
/
bin
/
bash
COUNTER
=
20
until [
$
COUNTER -lt
10
]
;
do
echo
COUNTER
$
COUNTER
let COUNTER-
=
1
done
完!
感谢,Thanks!
作者:iTech
出处:http://itech.cnblogs.com/
本文提供了多个Shell脚本循环实例,包括使用for循环遍历数字、文件列表及执行特定任务等。通过这些实例,读者可以更好地理解如何在Shell脚本中应用循环结构。

820

被折叠的 条评论
为什么被折叠?



