KSH For循环示例
时间:2020-01-09 10:41:09 来源:igfitidea点击:
在UNIX/Linux/* BSD/macOS/OS X操作系统下,如何在Korn Shell(KSH)中使用for循环?
当需要执行命令直到某些指定条件重复出现时,我们将ksh用于循环。
与传统的Unix shell相比,ksh的主要优势在于将其用作编程语言。
for循环使我们可以指定一个值列表,并对列表中的每个值执行命令。
让我们看看如何将ksh用于循环。
用于循环语法的KSH脚本
语法如下:
for {Variable} in {lists} do echo ${Variable} done
这是5次打印欢迎消息的示例shell脚本:
#!/bin/ksh for i in 1 2 3 4 5 do echo "Welcome $i times" done
运行脚本,如下所示:
$ chmod +x script.ksh $ ./script.ksh
或者
$ ksh script.ksh
其中:
- 我是变量名
- 1 2 3 4 5是参数列表。它可以是单词,字符串或数字的任何列表。我们还可以使用shell命令或shell元字符。
- " echo" Welcome $i times"`是根据参数列表执行五次的语句/命令。在这种情况下,请运行echo命令5次。
ksh for循环示例
您可以轻松设置范围(1到10),如下所示:
#!/bin/ksh for i in {1..10} do echo "Welcome $i times" done
如果上述方法无法正常工作,请尝试使用seq命令作为Korn shell中的命令替换:
#!/usr/bin/ksh for var in $(seq 1 10) do echo "$var" done
您还可以使用变量来定义项目列表。
当您开始循环时,将仅一次检查它们。
#!/bin/ksh files="/etc/passwd /etc/group /etc/hosts" for f in $files; do if [ ! -f $f ] then echo "$f file missing!" fi done
如果要让for命令使用多个项目,请不要引用$list。
使用显式列表的另一个示例:
#!/bin/ksh for car in bmw ford toyota nissan do print "Value of car is: $car" done
KSH用于循环命令替换
创建一个名为spaceshuttles.txt的文本文件,如下所示:
columbia endeavour challenger discovery atlantis enterprise pathfinder
现在创建一个名为demo.ksh的shell脚本
#!/bin/ksh for shuttle in $(cat spaceshuttles.txt) do print "Current Space Shuttle : $shuttle" done
您还可以在/tmp目录中打印文件名:
#!/bin/ksh for f in $(ls /tmp/*) do print "Full file path in /tmp dir : $f" done
在ksh循环中使用命令行参数
在此示例中,在命令行上输入的数据成为for循环的参数列表:
#!/bin/ksh for arg in $* do echo "Command line arg: $arg" done
如下运行:
$ ./script This is a test
总结
在本快速教程中,您学习了如何在使用ksh时使用for循环结构编写脚本。